/*
任务流
同步任务
同人先运行
new Promise 内部 是按照 同步的顺序执行,
除非你写了异步代码 (定时器/请求相关的)
异步任务
微任务 Promise里面的then或者catch就是微任务,nextTick(nodejs) ,await等待的
内容后面
宏任务 setTimeout setInterval setImmediate(nodejs)
注意 运行定时器或延时器时注意时间,设置时间短的先运行
忙时 闲时
先执行同步任务,遇到微任务1放在当前任务流最下面(如果遇到微任务2,
就放到任务流最下面以及任务1下面),遇到宏任务时,
放在下一个任务流最顶部
任物流就是类似与长方框
*/
console.log('JS 开始======================')
const p = new Promise(function (reslove, rejected) {
console.log('promise, 内部代码开始执行')
// rejected()
reslove() // 这是改变状态啥都不显示,在下面显示
console.log('promise, 内部代码执行完毕')
})
p.then(() => {
console.log('执行 then')
}).catch(() => {
console.log('执行 catch')
}).finally(() => {
console.log('执行 finally')
})
console.log('JS 结束=========================')
/** 1. console.log('JS 开始======================')
*
* 2. console.log('promise, 内部代码开始执行')
* 3. console.log('promise, 内部代码执行完毕')
* 4. console.log('JS 结束=========================')
* 5. console.log('执行 then')
* 6. console.log('执行 finally')
*
*/