《TypeScript实战指南》—2.3.4 async 和 await
【摘要】 本节书摘来自华章计算机《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)