# 关于async/await的执行问题
function wait() {
return new Promise(resolve =>
setTimeout(resolve, 100)
)
}
async function main() {
console.time();
const x = await wait(); // 每个都是都执行完才结,包括setTimeout的执行时间
const y = await wait(); // 执行顺序 x->y->z 同步执行,x 与 setTimeout 属于同步执行
const z = await wait();
console.timeEnd(); // default: 312.419ms
console.time();
const x1 = wait(); // x1,y1,z1 同时异步执行, 包括setTimeout的执行时间
const y1 = wait(); // x1 与 setTimeout 属于同步执行
const z1 = wait();
await x1;
await y1;
await z1;
console.timeEnd(); // default: 103.175ms
console.time();
const x2 = wait(); // x2,y2,z2 同步执行,但是不包括setTimeout的执行时间
const y2 = wait(); // x2 与 setTimeout 属于异步执行
const z2 = wait();
console.timeEnd(); // default: 0.034ms
}
main();