宏任务和微任务
1、Js 是单线程,高耗时操作就带来了进程阻塞问题。所以,Js 有两种任务的执行模式:同步模式和异步模式。
2、异步任务主要分为宏任务(Task)与微任务(Jobs)两种。
3、宏任务由宿主(浏览器、Node)发起,微任务由 JS 自身发起。
4、宏任务和微任务都是队列(先进先出),宏任务有script、setTimeout、setInterval等,微任务有Promise.then/ catch/finally、process.nextTick等。
5、一个宏任务执行完,判断是否有可执行的微任务,有则执行完所有微任务,否则执行下一个宏任务。
async和await
1、async修饰符:async修饰的函数,默认返回 new Promise
对象的resolve
内容(若被async修饰的函数无返回值,则最终无返回值)。如此调用 async
修饰的函数,可以直接使用then
获取resolve
值,用catch
获取reject
值,如
async function fun0(a) {
return new Promise((resolve, reject)=>{
if(a>2) resolve("haha")
else reject("hehe"