【发布时间】:2017-06-30 09:14:24
【问题描述】:
我的循环中的 闭包 有问题。这是我的工作:
this.newResults.cyclists.forEach(function(cyclist){
that.calcUsersScore( that.usersScoresByLigue,cyclist,bonus );
bonus--;
if(bonus === 0) {
console.log("c'est terminé");
that.addUsersScore( that.usersScoresByLigue );
}
});
所以我想执行我的函数addUsersScore(),变量usersScoreByLigue由先例函数calcUsersScore();更新。
我的问题是这个函数calcUsersScore() 执行时间很长(一些带有数据库和多个测试的请求)所以如何等待它并确保addUsersScore() 在之后触发?
提前致谢,
【问题讨论】:
-
在
that.calcUsersScore( that.usersScoresByLigue,cyclist,bonus, callback )中添加一个回调参数并将addUserScore作为参数传递,最后像callback()一样触发回调aa -
我会选择 Promises 并使用像 bluebirdjs 这样的库
标签: javascript loops asynchronous