js 异步任务执行顺序问题
js是单线程的(非阻塞的),实现方法就是事件循环;
分同步任务和异步任务;
new Promise((resolve,reject) => { resolve(1) console.log('log1') }).then(() => { console.log('log2') }) console.log('log3') setTimeout(() => { console.log('log4') Promise.resolve(2).then(() => { console.log('log5') }) }, 0) setTimeout(() => { console.log('log6') }, 0) console.log('log7')
执行顺序如下:
宏任务--微任务--异步宏任务(对应该供任务的为任务)---下一个异步宏任务
故打印顺序为:
log1 log3 log7 log2 log4 log5 log6