【发布时间】:2015-11-13 22:23:59
【问题描述】:
我正在尝试使用同步执行一系列功能。每个函数都应该在调用下一个函数之前延迟 3 秒。 我一定是做错了什么,因为它们都是在 3 秒后同时调用的,而不是按顺序调用的。
我做错了什么?
var tasks = []
allGroups.forEach(function(group){
tasks.push(deleteFromGroup(group))
})
tasks.reduce(function(cur, next) {
return cur.then(next);
}, Promise.resolve()).then(function() {
console.log("all executed")
});
})
}
function deleteFromGroup(group){
return new Promise(function(resolve, reject) {
setTimeout(function(){
console.log(group.id)
resolve()
}, 3000);
})
}
【问题讨论】:
-
为什么将答案代码粘贴到问题中?你不应该这样做,因为它会破坏上下文。
-
您的代码最初不能正常工作,我想问您为什么。我发现这是由于我自己的错误。我回滚了这个问题。
-
谢谢。请 - 切勿破坏已发布答案的部分问题。
-
我不会。可悲的是,万能的模组来了,并将一个非常好的问题标记为重复......
-
@Bergi 它在功能上是同样的问题,但是 API是不同的。
标签: javascript node.js promise