写点什么

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

作者:HullQin
  • 2022 年 8 月 27 日
    广东
  • 本文字数:1163 字

    阅读完需:约 4 分钟

[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('/');}
复制代码


用箭头函数定义:


const f = async () => {  await fetch('/');};
复制代码


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

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

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


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

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


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


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

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


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

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


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

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


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);
复制代码



好的写法:


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);
复制代码


写在最后

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

发布于: 刚刚阅读数: 5
用户头像

HullQin

关注

公众号【线下聚会游戏】 2020.10.07 加入

game.hullqin.cn 我做了一些联机桌游网页:支持2-10人联机的UNO、2-4人联机的斗地主、2人联机的五子棋。无需下载,点开即玩!叫上朋友,即刻开局!不看广告,不做任务,享受「纯粹」的游戏!

评论

发布
暂无评论
[JS入门到进阶] 7条关于 async await 的使用口诀,新学 async await?背10遍,以后要考!快收藏_CSS_HullQin_InfoQ写作社区