请参考以下JavaScript代码:
var arr = [30, 40, 10, 50, 20];
var fun = function(n) {
console.log("Before Promise => n: " + n);
return new Promise(resolve => {
console.log("After Promise => n: " + n);
setTimeout(() => {
console.log("Promise Resolved => n: " + n);
resolve(0);
}, n * 30);
});
}
arr.reduce((p, v) => p.then(fun(v)), Promise.resolve(0));
1.如果我错了请纠正我,Array.reduce()将上面的内容减少为以下Promise链:
Promise.resolve(0).then(fun(30)).then(fun(40)).then(fun(10)).then(fun(50)).then(fun(20)).
2.为什么输出不是如下:
Promise Resolved => n: 30
Promise Resolved => n: 40
Promise Resolved => n: 10
Promise Resolved => n: 50
Promise Resolved => n: 20
3.n*30如果我用固定时间更改,为什么输出如上500?
白衣非少年
一只名叫tom的猫
Cats萌萌
随时随地看视频慕课网APP
相关分类