async function randomDelay(id)
{
const delay=Math.random()*1000;
return new Promise((resolve)=>
{
setTimeout(()=>
{
//console.log(`${id} 执行结束! 延迟${delay}`);
setTimeout(console.log,0,`${id} 执行结束! 延迟${delay}`)
resolve();
},delay);
})
}
async function foo2()
{
const t0=Date.now();
let p1= randomDelay(1);
let p2= randomDelay(2);
let p3= randomDelay(3);
let p4= randomDelay(4);
let p5= randomDelay(5);
await p1;
await p2;
await p3;
await p4;
await p5;
console.log(`${Date.now()-t0}毫秒`);
}
foo2();
console.log(${Date.now()-t0}毫秒
);
这条为什么会先于最后一条setTimeout执行呢,
setTimeout(console.log,0,${id} 执行结束! 延迟${delay}
)
消息机制,出了包含setTimeout函数体应该立马打印了啊,为什么会有最后一条消息最后打印