console.log(1);
new Promise((resolve,reject)=>{
console.log(2);
setTimeout(()=>{
console.log(3)
new Promise((resolve)=>{
console.log(4);
resolve();
}).then(()=>{
console.log(9);
})
console.log(5);
},0)
resolve();
reject();
console.log(6);
}).then(()=>{
console.log(7);
setTimeout(()=>{
console.log(10);
})
},()=>{
console.log(8);
setTimeout(()=>{
console.log(11);
})
})
1. js分主线程和事件循环队列,同步任务放入主线程,异步任务放入循环队列
2. resolve和reject用于改变Promise对象的状态,只能执行一个,所以reject回调函数不执行
3. 函数的层层回调是采用,函数栈的结构,所以可以得出结果