《TypeScript实战指南》—2.3.4 async 和 await

举报
华章计算机 发表于 2019/06/16 13:05:09 2019/06/16
【摘要】 本节书摘来自华章计算机《TypeScript实战指南》一书中的第2章,第2.3.4节,作者是胡桓铭。

2.3.4 async 和 await

除了 promise,ES 8 提出的新关键字还有:async 和 await。它们用一种声明的方式告诉 JavaScript 运行时在 await 关键字处暂停执行代码,等待结果返回,并在结果返回处继续执行代码。

下面是一段服务器上运行的代码,用于查找用户数据:

async function fetchUser(id: string) {

    try {

        return await findUser(id);

    } catch(err) {

        console.log(error);

    }

}

async /await 函数让代码的执行方式更贴近同步调用,因为它会暂停函数的执行能力,等待结果的返回。这一点是不是与我们之前所讲的迭代器非常相似?没错,async /await 函数就是基于迭代器实现的。

我们回顾一下迭代器的能力:

  • 暂停函数执行。

  • 把值放入函数中。

  • 把错误抛到函数中。

这正是 generator(参见2.1.7节)帮我们做到的事!

但不同于迭代器,我们不用去手动操作 next,操作 throw,在后续的实战章节中,我们会着重使用 async/await,这里就先到此为止。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。