async.series:可变数量的callback
我正在使用Node.js(Express)和MongoDB(mongooseJS)。 我想要创buildasynchronous函数(一个接一个地,以正确的顺序查询数据库);
问题是:如何创build可变数量的async.series函数,如下所示:
var supply = [0]; async.series([ function(callback) { Model.find({ color: user.color[supply] }).exec(callback); }, ],function(err, results){ res.send('Chosen colors: ' + results); });
如果 – 可以说 – 可变电源= [0,1,2],
那么callback函数将被放置三倍,0,1和2放置在那里:
var supply = [0, 1, 2]; async.series([ function(callback) { Model.find({ color: user.color[supply] }).exec(callback); // supply = 0 }, function(callback) { Model.find({ color: user.color[supply] }).exec(callback); // supply = 1 }, function(callback) { Model.find({ color: user.color[supply] }).exec(callback); // supply = 2 }, ],function(err, results){ res.send('Chosen colors: ' + results); });
换句话说,我如何循环这个片段
function(callback) { Model.find({ color: user.color[supply] }).exec(callback); },
所以这里的function数量将取决于一些variables?
干杯!
麦克风
你可以使用async.mapSeries()
因为它被devise为迭代一个数组。 例:
var supply = [0]; async.mapSeries(supply, function(val, callback) { Model.find({ color: user.color[val] }).exec(callback); }, function(err, results) { if (err) throw err; // all done! console.dir(results); });
这假定.exec()
调用callback,以便错误是第一个和值是第二个。
- 当使用asynchronous等待,如何指定一个callback?
- 如何处理客户端nodejs的asynchronous请求?
- 当所有的任务完成后,async.parallel仍然会调用最后的callback函数,如果其中任何一个得到错误?
- 使用nodejsasynchronous和请求模块
- 在sequelize getter方法中的asynchronous表查询
- 如何编写一个node.js函数等待事件在“返回”之前触发?
- 为什么这个JavaScript Promise拒绝()在结果callback处理?
- 用于asynchronousLinux脚本的Node.js
- Node.js承诺和asynchronousexception