【发布时间】:2015-04-11 09:39:44
【问题描述】:
我的场景:
在 forEach 循环中,我执行了一个带有回调的函数,如下所示:
var rows = [];
rows.forEach(function(elem, i){
///done some stuff
client.search(query).then(function(facResult){
//done some stuff
});
});
我的问题是对于第一次迭代,“client.search(query)”在完成这些东西之前执行,第二次迭代开始了,因为client.search(query) 是通过回调执行的。我必须首先将所有结果推送到一个数组中。
所以在我得到第一个结果之前,第二个被附加,有时我什至没有得到第一个结果。
我必须做什么才能按顺序执行 for 循环。我搜索了很多,一些建议是使用timedelay,但我不需要。帮我解决这个问题。提前致谢。
【问题讨论】:
-
你可以使用异步库。看这个帖子:stackoverflow.com/questions/9644197/…
标签: javascript node.js