但由于某种原因,它们却立即被输出。
您已经在这里打电话给他们:
promiseFuncs.push(getDelayedString(str));
// ^^^^^
您需要推动function(){ returngetDelayedString(str);}
。顺便说一句,each
您应该使用而不是在循环中使用推入数组map
。实际上,您实际上并不需要,但是可以直接reduce
遍历strings
数组:
function onceUponATime() {
var strings = ["Once", "upon", "a", "time"];
return strings.reduce(function (soFar, s) {
return soFar.then(function() {
return getDelayedString(s);
});
}, Q());
}