function pro(v) {
return new Promise(r => {
setTimeout(() => {
r(v)
}, 1000)
})
}
for 循环支持 await
for (let i = 0; i < 3; i++) {
const r = await pro(i)
console.log(new Date().toTimeString(), r)
}
// 14:24:16 GMT+0800 (中国标准时间) 0
// 14:24:17 GMT+0800 (中国标准时间) 1
// 14:24:18 GMT+0800 (中国标准时间) 2
for (let i of [0, 1, 2]) {
const r = await pro(i)
console.log(new Date().toTimeString(), r)
}
// 14:24:21 GMT+0800 (中国标准时间) 0
// 14:24:22 GMT+0800 (中国标准时间) 1
// 14:24:23 GMT+0800 (中国标准时间) 2
数组方法循环不支持 await
[0, 1, 2].forEach(async i => {
const r = await pro(i)
console.log(new Date().toTimeString(), r)
})
// 14:24:28 GMT+0800 (中国标准时间) 0
// 14:24:28 GMT+0800 (中国标准时间) 1
// 14:24:28 GMT+0800 (中国标准时间) 2