Promise 执行问题
写出下面一段程序的输出的结果
new Promise(resolve => {
console.log(1);
setTimeout(() => console.log...(2),0)
Promise.resolve().then(() => console.log(3))
resolve();
}).then(() => console.log(4))...console.log(5)
答案: 1 5 3 4 2
解析:事件循环,任务队列的执行顺序,new Promise是会立即调用,接收了一个resolve参数,执行调用输出console.log(1)...语句,遇到setTimeout,它是一个异步宏任务,会推送到任务队列中,进入挂起状态
而promise.resove也是一个异步微任务,仍然会推送到任务队列中,进入挂起状态,当主线程console.log