• [JS入门到进阶] 7条关于 async await 的使用口诀,新学 async await?背10遍,以后要考!快收藏


    我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权。我独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,不收费没广告。还开发了《Dice Crush》参加Game Jam 2022。喜欢可以关注我 HullQin 噢~我有空了会分享做游戏的相关技术。

    async await 使用口诀

    1. async写函数前面,await写函数里面。
    2. 函数没有async,一定也没await。
    3. 函数不执行await,也可以有async。
    4. 函数没有await,最好删掉async。
    5. async函数直接return await,请把async await都丢掉。
    6. 调用async函数却不await,你就只有破柔蜜丝。
    7. 写了await又写then,指定要被老板炒;await和then不混用,我们还是好基友。

    案例

    1. async写函数前面,await写函数里面。

    用function定义:

    async function f() {
      await fetch('/');
    }
    
    • 1
    • 2
    • 3

    用箭头函数定义:

    const f = async () => {
      await fetch('/');
    };
    
    • 1
    • 2
    • 3

    这个函数逻辑很简单,就是发送了个请求给这个/的地址,而/这个地址就表示当前的域名,即:https://juejin.cn/。理论上,它会把掘金首页的html文件给下载过来。

    2. 函数没有async,一定也没await。

    如果一个函数的前面没有写async,那么它里面一定不要写await噢,不然会报错的!不信你看:

    1.png

    3. 函数不执行await,也可以有async。

    如果一个函数里面,await逻辑可能不会被执行,那么函数也是可以有async标识的!你能明白2和3的区别嘛?

    它不会报错的,不信你看:

    2.png

    4. 函数没有await,最好删掉async。

    如果一个函数里面没有await调用,那么你完全可以删掉async。此时,对函数的调用:await f1()可以直接改为f1()

    3.png

    5. async函数直接return await,请把async await都丢掉。

    二者最终效果是一样的哦,但是丢掉后就少了一层async await,看起来更方便了呢。

    4.png

    6. 调用async函数却不await,你就只有破柔蜜丝。

    调用async函数却不await,你就只有Promise

    5.png

    7. 写了await又写then,指定要被老板炒;await和then不混用,我们还是好基友。

    被老板炒鱿鱼的写法:

    const data = await fetch('https://api.juejin.cn/interact_api/v1/pin_tab_lead?aid=2608&uuid=')
      .then(r => r.json());
    console.log(data);
    
    • 1
    • 2
    • 3

    6.png

    好的写法:

    const res = await fetch('https://api.juejin.cn/interact_api/v1/pin_tab_lead?aid=2608&uuid=');
    const data = await res.json();
    console.log(data);
    
    • 1
    • 2
    • 3

    7.png

    写在最后

    我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权。我独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,不收费没广告。还开发了《Dice Crush》参加Game Jam 2022。喜欢可以关注我 HullQin 噢~我有空了会分享做游戏的相关技术。

  • 相关阅读:
    Android Studio设置
    python转xml为json
    聊一聊 .NET高级调试 内核模式堆泄露
    Vue双向绑定原理
    SVG—初识4
    浪漫烟花------哈哈哈哈哈哈哈哈哈哈哈哈
    spicy之evt接口定义文件
    如何做好利益相关方的期望管理?
    Python顺序结构程序设计(湖南工业大学)
    成品短视频App源码:10个最热门的功能模块详解
  • 原文地址:https://blog.csdn.net/kd_2015/article/details/126672970