我想要的结果是在for循环时按顺序执行每个test 然后输出0 1 2 3
和对应的时间
但结果是乱的 所以加不加这个async和await结果都一样 那么为什么我加了await无效呢?第二次for循环时没有等待第一次test执行完再执行第二次循环吗?还是我async和await的用法不对呢?如果我想保证执行顺序应该怎么办呢?
function test(i){
var time = parseInt(1000*Math.random())
setTimeout(()=>{
console.log(i)
console.log(time)
},time)
}
async function test2 () {
for (let i=0;i<4;i++){
await test (i)
}
}
test2()
await
后面要等 Promise 对象,但实际你等的是啥呢?把await
那句话改一下:好吧,换句话说,你得让
test()
返回 Promise 对象,这个 Promise 对象在setTimeout
到期时调用resolve()