【发布时间】:2018-06-17 09:30:22
【问题描述】:
我正在尝试使用 async await 创建一个“同步循环”,但我得到了一个奇怪的行为,即在第一个 Promise 之后获取所有结果。
这是我的测试用例。看看你是如何聚在一起的,而不是一个接一个地打印
const p = () => new Promise((resolve) =>{
setTimeout(()=>{
resolve(Math.floor(Date.now() / 1000))
},1000)
})
const test = () =>{
[1,2,3,4,5,6,7,8,9,10].map(async () =>{
const e = await p();
console.log(e)
});
}
test();
【问题讨论】:
-
map 不适用于
aync / await但如果你使用了 bluebird promise,它确实有一个基于 promise 的 map。或者,在您的示例中,for 循环可以工作。
标签: javascript asynchronous promise async-await