我在处理某些数据方面遇到了一个问题 - 我希望按部分解释清楚:
所以我有以下代码:
Q.all(userIDsToProcess.map(function(item) {
return findUserAndAddData(item['option'], item['theID']);
}))
.then(function(){
cleanUpUnsued();
}
然后这个方法findUserAndAddData
包含2个for循环类似:
var findUserAndAddData = function(oIn, userComingIn) {
var d = Q.defer();
for (var r=0; r<SomeValue; r++) {
for (var x=0; x<SomeValue; x++) {
//Do some processing
}
}
return d.promise;
}
现在我遇到的问题是我通过Q.all map
向该函数发送的每个项目,我希望它在下一个传递之前完全处理。
我认为return d.promise
会这样做但是经过一些调试我可以看到它不是。
所以问题 - 如何将每个item
发送到findUserAndAddData
方法逐个处理 - 从我的调试中我可以看到它们都是一次性发送的(以维持异步行为) )?
希望这是有道理的 - 任何帮助都会受到赞赏。
感谢。