yao*_*ing 3 javascript arrays asynchronous node.js
说我有一个数组和一个函数A:
var array = ['a', 'b', 'c'];
function A(p) { ... };
Run Code Online (Sandbox Code Playgroud)
现在我想传递array函数的每个项目A,并希望它们按顺序执行.通常不会有任何问题.我可以:
array.forEach(function(item) {
A(item);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果有一些异步操作A,一切都搞砸了.所以问题是:
即使A中存在异步操作,如何才能使它们按顺序执行?
我的意思是,我想在A('a')完全结束后执行A('b')(包括那里的所有异步动作).
我想一定有一些公用事业公司已经做过这样的事了.有人能给我一些光明吗?
这是async.js中 "eachSeries"的完美用例
你可以这样使用它
async.eachSeries(array, A, function(err) {
// this function gets called at the end
// after your array has been looped
});
Run Code Online (Sandbox Code Playgroud)
而且您必须使用第二个参数修改A函数 - 回调.
function A(p, callback) {
// ...
return callback();
}
Run Code Online (Sandbox Code Playgroud)
一旦A中的异步调用完成,就会调用callback参数.