资讯专栏INFORMATION COLUMN

1 分钟读完《10 分钟学会 JavaScript 的 Async/Await》

wapeyang / 1801人阅读

摘要:分钟读完以前我们使用。把异步变成了同步。允许同时执行所有的异步函数函数总耗时为秒的耗时。的错误处理在语法中,我们可以使用进行错误处理。在中的分支会进入语句。阅读原文讨论地址分钟学会的如果你想参与讨论,请点击这里

1 分钟读完 JavaScript Async/Await Explained in 10 Minutes

以前我们使用 callback。

后来我们使用 Promise。

现在我们使用 Async/Await。

1、什么是 Async/Await?

Async - 定义异步函数(async function someName(){...})

自动把函数转换为 Promise

当调用异步函数时,函数返回值会被 resolve 处理

异步函数内部可以使用 await

Await - 暂停异步函数的执行 (var result = await someAsyncCall();)

当使用在 Promise 前面时,await 等待 Promise 完成,并返回 Promise 的结果

await 只能和 Promise 一起使用,不能和 callback 一起使用

await 只能用在 async 函数中

2、Async/Await 是否会取代 Promise

不会。

Async/Await 底层依然使用了 Promise。

多个异步函数同时执行时,需要借助 Promise.all

async function getABC() {
  let A = await getValueA(); // getValueA 花费 2 秒
  let B = await getValueB(); // getValueA 花费 4 秒
  let C = await getValueC(); // getValueA 花费 3 秒

  return A*B*C;
}

每次遇到 await 关键字时,Promise 都会停下在,一直到运行结束,所以总共花费是 2+4+3 = 9 秒。await 把异步变成了同步

async function getABC() {
  // Promise.all() 允许同时执行所有的异步函数
  let results = await Promise.all([ getValueA, getValueB, getValueC ]); 

  return results.reduce((total,value) => total * value);
}

函数总耗时为 4 秒(getValueB 的耗时)。

3、Async/Await 的错误处理

在 Async/Await 语法中,我们可以使用 try/catch 进行错误处理。在 Promise 中的 .catch() 分支会进入 catch 语句。

阅读原文:JavaScript Async/Await Explained in 10 Minutes

讨论地址:10 分钟学会 JavaScript 的 Async/Await

如果你想参与讨论,请点击这里

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89438.html

相关文章

  • ES6-7

    摘要:的翻译文档由的维护很多人说,阮老师已经有一本关于的书了入门,觉得看看这本书就足够了。前端的异步解决方案之和异步编程模式在前端开发过程中,显得越来越重要。为了让编程更美好,我们就需要引入来降低异步编程的复杂性。 JavaScript Promise 迷你书(中文版) 超详细介绍promise的gitbook,看完再不会promise...... 本书的目的是以目前还在制定中的ECMASc...

    mudiyouyou 评论0 收藏0
  • 前端基础

    摘要:谈起闭包,它可是两个核心技术之一异步基于打造前端持续集成开发环境本文将以一个标准的项目为例,完全抛弃传统的前端项目开发部署方式,基于容器技术打造一个精简的前端持续集成的开发环境。 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。 不论你是javascript新手还是老鸟,不论是面试求职,还是日...

    graf 评论0 收藏0
  • Javascript异步编程:Callback、Promise、Generator

    摘要:异步过程控制了解异步的意义之后,我们来对比目前主流几种异步过程控制方法,探讨一下异步编程的最佳实践。结语希望本文对大家有点帮助,能更深刻的理解异步编程,能写出更优雅更高效的代码。 同步和异步(Synchronous and Asynchronous) 了解javascript的同学想必对同步和异步的概念应该都很熟悉了,如果还有不熟悉的同学,我这里举个形象的例子,比如我们早上起床后要干三...

    dadong 评论0 收藏0
  • 5分钟掌握JavaScript小技巧

    摘要:译者按技巧虽好重在掌握并使用起来原文译者为了保证可读性,本文采用意译而非直译。从数组中移除重复元素中,有了集合的语法。自从年双十一正式上线,累计处理了亿错误事件,得到了金山软件等众多知名用户的认可。 译者按: 技巧虽好、重在掌握并使用起来! 原文: Learn these neat JavaScript tricks in less than 5 minutes 译者: Funde...

    tulayang 评论0 收藏0
  • 前端学习资源

    摘要:提供了完整的环境,并且支持自定义域名指向,动态计算资源调整,可以完成各种应用的开发编译与部署。 react 新特性 react16 Context 算法相关 图解排序算法(二)之希尔排序 微信小程序 微信小程序组件化的解决方案移动端尺寸基本知识 浏览器 前端必读:浏览器内部工作原理浏览器缓存原理解读浏览器加载css和js及dom解析之间的关系浏览器缓存 CSS学习 移动web开发布局入...

    zhisheng 评论0 收藏0

发表评论

0条评论

wapeyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<