javascript – NodeJS,Async forEachSeries执行顺序

前端之家收集整理的这篇文章主要介绍了javascript – NodeJS,Async forEachSeries执行顺序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
试着让我的头脑使用NodeJS的Async模块.

我有以下代码.

var a1 = [1,2,3,4,5,6,7,8];
async.forEachSeries(a1,function(n1,callback) {
    console.log(n1);
    var a2 = [10,11,12,13,14];
    async.forEachSeries(a2,function(n2,callback) {
        console.log(n1 + " " + n2);
        callback();
    });
    callback();
});

我想以打印输出的方式进行上述代码的处理

1
1 10
1 11
1 12
1 13
1 14
2
2 10
2 11
2 12
2 13
2 14
3
3 10
3 11
3 12
3 13
3 14
.....

但相反,我得到了类似的东西..

1
1 10
2
2 10
1 11
3
3 10
2 11
1 12
....

我该如何解决

解决方法

完成所有操作后,forEachMethod也会接受回调.所以你的代码应该是这样的:
var a1 = [1,callback_s1) {
    console.log(n1);
    var a2 = [10,callback_s2) {
        console.log(n1 + " " + n2);
        callback_s2();
    },function () {
        /* Finished the second series,now we mark the iteration of first series done */ 
        callback_s1();
    } );
});

您的代码中的问题是您假设async.forEachSeries是同步的,但事实并非如此.它保证了数组将被同步处理,但函数本身是异步的.

原文链接:https://www.f2er.com/js/158402.html

猜你在找的JavaScript相关文章