短篇巩固基础系列 -- async/await用法

55 阅读1分钟

一、前言

最近愈发的感觉到基础的重要性,于是准备写个巩固基础系列,对自己以后也是个方便吧。因为是给自己或者同行看的,所以这个系列里的文章风格会非常随意。

二、它是干啥的?

异步操作的一种解决方案。

三、运行规则

这里我不会说理论,因为理论有时显的不直观,并且在这样一个“卷者为王”的时代,理论过于被妖魔化。

请看下面一段代码

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的也就是错误处理了,这块相对简单些,大家自行百度吧。