Node.js - Q Promises等待每个for循环迭代

时间:2016-06-22 20:22:32

标签: javascript node.js promise q

我在处理某些数据方面遇到了一个问题 - 我希望按部分解释清楚:

所以我有以下代码:

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方法逐个处理 - 从我的调试中我可以看到它们都是一次性发送的(以维持异步行为) )?

希望这是有道理的 - 任何帮助都会受到赞赏。

感谢。

0 个答案:

没有答案