【发布时间】:2019-08-26 13:47:33
【问题描述】:
我有一个来自库的函数,它返回一个承诺。我需要多次运行这个函数,但每次迭代都必须等到上一个任务完成。
我的假设是我可以做到这一点:
promiseReturner(1)
.then(promiseReturner(2)
.then(promiseReturner(3)
.then(...)
可以使用循环来简化:
var p = Promise.resolve();
for (var i=1; i<=10; i++) {
p = p.then(promiseReturner(i));
}
但是,当我这样做时,链中的每个承诺都会同时执行,而不是像.then() 似乎暗示的那样一个接一个地执行。显然,我遗漏了有关 Promise 的一些基本内容——但在阅读了几篇教程和博客文章后,我仍然迷失了方向。
【问题讨论】:
-
promiseReturner(n)是返回一个承诺还是做一个返回承诺的函数?
标签: javascript promise