```
const a = (s) => {
return new Promise((resolve, reject) => {
setTimeout(
(a) => {
console.log(a);
},
s * 1000,
s
);
});
};
(async () => {
const times = [1, 2, 3, 4];
await Promise.all(
times.map(async (time) => {
await a(time);
await a(time + 1.5);
})
).catch((e) => {
console.log("promise all error", e);
});
})();
```
為什么只輸出了
1
2
3
4
而不是
1
2
2.5
3
3.5
4
4.5
5.5
uj5u.com熱心網友回復:
首先方法a中回傳的promise沒有resolve或者reject,promise 的pending狀態沒有改變,所以只輸出了4個值;其次,這里即使在方法a中加了resolve(a),雖然會輸出8個值,但是順序也不會是說的第2種情況,應該是下列順序輸出
1
2
3
2.5
4
3.5
4.5
5.5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/195548.html
標籤:JavaScript
