异步循环,如何判断全部完成?
发布于 11 年前 作者 romboo 5152 次浏览 最后一次编辑是 8 年前

例如我有一个批量操作数据库的循环,我希望顺序执行完后,响应回调,怎么处理?有没有什么组件可以解决。

10 回复

正在用,真的挺不错,呵呵

推荐async, 超级好用的module

我一般这么办,比如操作数据库,ajax初始化网页等。下面以数据库操作为例: function serializedQuery(sqls,cb){ var c=sqls.length; var rlt=[]; sqls.forEach(function(sql){ mysql.query(sql,function(error,rows,fields){ if(error){mysql.end();cb(error);}else{ rlt.push(rows); c–; if(c<=0){ mysql.end(); cb(null,rlt) };
} }
});
}

//make a call serializedQuery([ ‘select …’, ‘update…’ ,delete…’,.,.,.],function(err,data){ if(data){ … } });

作为初学者,弄清楚原理之前去借modules可能会走弯路的 … …

朋友 你这个也是用了 async 模块吗? 我现在也有个类似的功能,需要用事务,不知道怎么去实现比较好。 有没有好的方案?

在async中用for循环 报错。

没有用async模块

狂顶async模块!超级好用,不过要注意应用环境啊,弄不好会有性能问题!

回到顶部