setTimeout(()=>{ console.log('set1'); }) new Promise((resolve,reject)=>{ console.log('p1'); resolve();
//同步 }).then(()=>{ console.log('then1');
//异步 }) console.log(1);
【'set1'】//宏
【‘then1’】//微
上述代码执行后输出值:p1,1,then1,set1
setTimeout(()=>{ console.log('set1'); new Promise((resolve,reject)=>{ console.log('p2'); resolve(); }).then(()=>{ console.log('then2') }) }) new Promise((resolve,reject) =>{ console.log('p1'); resolve(); }).then(()=>{ console.log('then1'); setTimeout(()=>{ console.log('set2') }) }) console.log(1);
// p1,1,then1,set1,p2,then2,set2
解析:
异步队列中包含宏任务和微任务。先执行微任务,后执行宏任务
微任务:Promise,process.nextTick
宏任务:script代码,setTimeout,setInterval