一、前言
最近愈发的感觉到基础的重要性,于是准备写个巩固基础系列,对自己以后也是个方便吧。因为是给自己或者同行看的,所以这个系列里的文章风格会非常随意。
二、它是干啥的?
异步操作的一种解决方案。
三、运行规则
这里我不会说理论,因为理论有时显的不直观,并且在这样一个“卷者为王”的时代,理论过于被妖魔化。
请看下面一段代码
async function fn1(){
console.log('1');
await A;
console.log('2');
}
上面的async函数完全等价于下面这段代码:
function fn1(){
return new Promise(resolve => {
console.log('1');
resolve(A);
}).then(result => {
console.log('2');
});
}
之所以这么转化是对的,主要依据是MDN(developer.mozilla.org/zh-CN/docs/…)
所以从上面的代码来看,'1' 肯定比 '2' 先执行,但是 '1' 与 '2' 之间是否连续,那就要看resolve里的A是啥了。resolve无非也就是 普通代码、定时器、promise。更具体的大家可以自行百度一哈。
最后
剩下的有关async的也就是错误处理了,这块相对简单些,大家自行百度吧。