Node.js – 寻找asynchronous函数

我在Node.js中寻找一个模块,它将为数组中的每个项目运行一个函数,但是暂停执行数组中的下一个项目,直到返回最后一个值。

我有async.concatSeries()运行一系列请求函数。

看起来像这样

var foo = [id,id,id]; function bar(){//do something then return value} async.concatSeries(foo, bar, function(err, result){//log result}); 

我想返回所有这些与数组相同的顺序。 任何帮助将是伟大的,谢谢!

如果您暂停等待以前的结果,您正在同步工作。 只要使用Array.map()

 results = [1, 2, 3].map( function(element, index) { return element * 2; }); // results = [2, 4, 6] 

有时候,按顺序运行任务,或批处理以限制传出连接等是一个好主意。

最知名的库是asynchronous的 。 有了它,你的代码将如下所示:

 var async = require('async'); // Some array of data. var ids = [0, 1, 2, 3, 4, 5]; // Async function applying to one element. function getUser(id, callback) { // A call to a datastore for example. if (err) { return callback(err); } callback(null, user); } async.mapSeries(ids, getUser, function (err, users) { // You now have an error or an array of results. The array will be in the // same order as the ids. }); 

您还可以使用async.map进行并行执行,使用async.map进行并行执行,并使用有限数量的任何给定时间使用的ids