/** * 异步任务:宏任务 微任务 * 宏任务:整体的script代码、settimeout、setinterval * 微任务:promise process.nextTick * 代码的执行顺序: * 先执行主线栈中(同步任务),在执行异步任务 * 先执行所有的微任务 全部执行完成后 在执行宏任务 */ setTimeout(function () { console.log("1"); //a1 }); new Promise(function(resolve) { console.log('2'); resolve() }).then(function() { console.log('3');//b1 }) console.log("4"); // 2 4 3 1 // console.log(1) // setTimeout(function(){ // console.log(2); // let promise = new Promise(function(resolve, reject) { // console.log(7); // resolve() // }).then(function(){ // console.log(8) // }); // },1000);// 宏1 // setTimeout(function(){ // console.log(10); // let promise = new Promise(function(resolve, reject) { // console.log(11); // resolve() // }).then(function(){ // console.log(12) // }); // },0);//宏2 // let promise = new Promise(function(resolve, reject) { // console.log(3); // resolve() // }).then(function(){ // console.log(4) //b1 // }).then(function(){ // console.log(9) // b2 // }); // console.log(5) // 1 3 5 4 9 10 11 12 2 7 8 // console.log('1'); // setTimeout(function() { // console.log('2'); // // process.nextTick(function() { // // console.log('3'); // // })//a1 // new Promise(function(resolve) { // console.log('4'); // resolve(); // }).then(function() { // console.log('5')//a2 // }) // })//宏1 // // process.nextTick(function() { // // console.log('6'); // // }) //微1 // new Promise(function(resolve) { // console.log('7'); // resolve(); // }).then(function() { // console.log('8') // 微2 // }) // setTimeout(function() { // console.log('9'); // // process.nextTick(function() { // // console.log('10'); // // }) // new Promise(function(resolve) { // console.log('11'); // resolve(); // }).then(function() { // console.log('12') // }) // })//宏2 // 1 7 8 2 4 5 9 11 12