0
解决我尽量按顺序执行承诺,但出问题的时间...延迟承诺链
当我执行下面的代码,我得到了瞬间的五个回答“我是XXX,我得到YY” 2秒钟后,我收到了“成功”消息。
我想要的是先得到消息“我是XXX,我得到YY”,间隔2秒,然后成功。
有什么想法?
"use strict";
Promise.resolve()
.then(doStuff)
.then(function() {
console.log("Success");
})
function doStuff() {
let item = [1, 2, 3, 4, 5, 6];
// Construction du tableau de promises
let array = item.map(i => {
let pro = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Item " + i);
}, 2000);
});
pro.custom = i;
return pro;
});
let pro = array.reduce((p, item) => {
return p.then((val) => {
console.log("I'm " + item.custom + " and I get " + val);
return Date.now();
});
}, Promise.resolve());
return pro;
}
(和我的英文不好对不起)。
非常难以阅读不一致缩进的代码,其中具有多个级别。 – jfriend00
好的,我只是发现了StackOverflow在线编辑器。我试图在未来做更好的缩进(我保证)... – sgibout