我有一个函数返回一个承诺的库。我需要多次运行此函数,但每次迭代都必须等到上一个任务完成。你如何同步解决一系列es6承诺?
我的假设是,我可以这样做:
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()
似乎意味着一个接一个。很明显,我错过了一些有关承诺的基础知识 - 但在阅读了几篇教程和博客文章后,我仍然迷失了方向。
Here's a codepen I wrote up to demonstrate my attempt。
是否'promiseReturner( n)“回复承诺或履行承诺 - 返回功能? – Bergi 2015-09-04 10:32:12