我有一個函數返回一個承諾的庫。我需要多次運行此函數,但每次迭代都必須等到上一個任務完成。你如何同步解決一系列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