CNode
Yyandaoyong发布于13 年前最后回复13 年前7 回复5798 浏览0 收藏

111

查看回复

回复 (6)

Y
yandaoyong#1·13 年前

谢谢

N
neuront#2·13 年前

或者循环改递归

L
lenbo#3·13 年前

外面做个变量标记,在闭包中判断一下确定所有的循环都执行完了,然后再执行next函数.

S
softice#4·13 年前

个人觉得:js的for循环里面,如果需要非异步,不要把function放在循环中,而改用callback。

A
a272121742#5·13 年前
var flag = 0;
var array = [{},{},{},{}];
for(var i = 0; i < array.length; i++){
    //do something as async
    dao.create(array[i],function(err,doc){
        if(array.length == ++flag){
            //do something at last
        }
    });
}
Y
ym1623#6·13 年前

有两种解决方式,一种是用undersorce.js _.each或者其他的foreach函数,还有一种是用do(需传递的变量)...while语法要多了解javascript的特性及处理方式我相信你以后遇到类似的问题应该能轻松解决.

参与回复
登录后即可参与回复。登录