SOURCE

// let p0 = new Promise(function (resolve, reject) {
//     resolve()
//     console.log(`6`)
// }).then((res) => {
//     console.log(`0`);
// }).then((res) => {
//     console.log(`1`);
// })

// let p1 = new Promise(function (resolve, reject) {
//     resolve()
// }).then(() => {
//     console.log(`2`);
// })

// p0.then((res) => {
//     console.log(`3`);
// }).then(() => {
//     console.log(`4`)
// })
// console.log(`5`)


/*
首先执行同步代码(promise回调中的也属于同步代码,所以先执行po中的resolve,将
console.log(0)加入到了微任务队列,打印6,接着执行p1中的resolve,将
 console.log(`2`)加入到了微任务队列,然后打印5,然后根据从上往下的执行
 顺序先后将console.log(1)、console.log(3)和
 console.log(4)依次加入到微任务队列,然后根据微任务队列的排序,先后打印0、2、
 1、3、4)
 */


//   setTimeout(function() {
//     console.log('a')
//   }, 0)
//   new Promise(function(resolve) {
//     console.log('b')
//     for (let i = 0; i < 10000; i++) {
//       if (i === 10) {
//         console.log('c')
//       }
//       i == 9999 && resolve('d')
//     }
//   }).then(function(val) {
//     console.log(val)
//   })
//   console.log('e');

// console.log('1');

// setTimeout(function() {
//     console.log('2');
//     process.nextTick(function() {
//         console.log('3');
//     })
//     new Promise(function(resolve) {
//         console.log('4');
//         resolve();
//     }).then(function() {
//         console.log('5')
//     })
// })
// process.nextTick(function() {
//     console.log('6');
// })
// new Promise(function(resolve) {
//     console.log('7');
//     resolve();
// }).then(function() {
//     console.log('8')
// })

// setTimeout(function() {
//     console.log('9');
//     process.nextTick(function() {
//         console.log('10');
//     })
//     new Promise(function(resolve) {
//         console.log('11');
//         resolve();
//     }).then(function() {
//         console.log('12')
//     })
// })

//1,7,6,8,2,4,3,5,9,11,10,12。
console 命令行工具 X clear

                    
>
console