浏览器中的异步编程
今日头条练习题
<script>
async function async1() {
console.log('async1 start');
await async2();
console.log('async1 end');
}
async function async2() {
console.log('async2');
}
console.log("script start");
setTimeout(function () {
console.log('setTimeout');
}, 0);
async1();
new Promise(function (resolve) {
console.log('promise1');
resolve();
}).then(function () {
console.log("promise2");
})
console.log('script end');
</script>
//script start
//async1 start
//async2
//promise1
//script end
//async1 end
//promise2
//setTimeout
错误点:
await async2()
.then 首先想到微任务,等待Promise 结果
变态题目
易错点:
await 右侧立即执行
进入宏任务区间,20ms 先到达时间先处理,再处理 0ms的(实际5ms)