我必须在循环中调用一些代码异步代码。我尝试使用promises,但迭代器没有像我期望的那样受到约束。 当我做
之类的事情for n in [1,2,3]
console.log "PRINT:" + n
Q()
.then =>
console.log "PRINT:" + n
打印
PRINT:1
PRINT:2
PRINT:3
PRINT:3
PRINT:3
PRINT:3
我知道这是因为首先执行循环然后承诺开始解决。我想知道如何使用不同的n值调用promise链中的每个print(或者为数组中的不同值执行promise链的任何方式)。
编辑:根据评论中的要求,我在JS中的代码看起来像这样
var n, _i, _len, _ref;
_ref = [1, 2, 3];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
n = _ref[_i];
console.log("PRINT:" + n);
Q().then((function(_this) {
return function() {
return console.log("PRINT:" + n);
};
})(this));
}