大家都知道,async函数的返回值是 Promise 对象,这比 Generator 函数的返回值是 Iterator 对象方便多了。你可以用then方法指定下一步的操作。

  进一步说,async函数完全可以看作多个异步操作,包装成的一个 Promise 对象,而await命令就是内部then命令的语法糖。

  先来看一段代码:

  函数f内部return命令返回的值,会被then方法回调函数接收到。

  只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数,wait后面要给个promise对象,也会返回promise对象。

  需要注意的事:

  (1)await命令后面的Promise对象,运行结果可能是rejected,所以最好把await命令放在try...catch代码块中。

  (2)多个await命令后面的异步操作,如果不存在继发关系,最好让它们同时触发。

  (3)await命令只能用在async函数之中,如果用在普通函数,就会报错。

  顺序继发异步处理

  先封装一个getData的函数,用来ajax读取数据,并返回promise对象。

  之后我们需要分别依次从多个数据文件里面读取数据,再依次拼装到新对象中。

  有可能数据读取不到,需要处理错误,继而程序不中断。

  或者是用try..catch处理, 有时,我们希望即使前一个异步操作失败,也不要中断后面的异步操作。这时可以将第一个await放在try...catch结构里面,这样不管这个异步操作是否成功,第二个await都会执行。

  并发异步处理

  继发关系比较耗时,因为只有前一个await完成以后,才会执行后一个await,完全可以让它们同时触发。

  同样有可能数据读取不到,需要处理错误,继而程序不中断。

  ——译自 ECMAScript® 2017 Language Specification

千锋成都Java培训

HTML5技术分享 ES2017继发与并发相关推荐

  1. 新浪微博技术分享:微博实时直播答题的百万高并发架构实践

    本文由"声网Agora"的RTC开发者社区整理. 1.概述 本文将分享新浪微博系统开发工程师陈浩在 RTC 2018 实时互联网大会上的演讲.他分享了新浪微博直播互动答题架构设计的 ...

  2. 知乎技术分享:知乎千万级并发的高性能长连接网关技术实践

    本文来自知乎官方技术团队的"知乎技术专栏",感谢原作者faceair的无私分享. 1.引言 实时的响应总是让人兴奋的,就如你在微信里看到对方正在输入,如你在王者峡谷里一呼百应,如你 ...

  3. 知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路

    本文来自知乎官方技术团队的"知乎技术专栏",感谢原作者陈鹏的无私分享. 1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经 ...

  4. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  5. mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?

    原标题:技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢? 背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 ...

  6. “一次编写,随处运行” Intel HTML5技术研讨会

    HTML5 是一种开放标准.通过使用此标准,开发人员只需编写一次程序,即可在任何地方运行. 这一跨平台方法能够显著增加开发人员的总体潜在受众,同时在不同屏幕尺寸上为用户带来更一致的体验.因此,HTML ...

  7. 技术分享|明源云天际集成开放平台接口中心基于IdentityServer4的鉴权机制

    源宝导读:企业数字化生态建设中为解决集成多样性和资源统一管理的痛点引入企业级网关,网关作为资源访问的大门,身份认证鉴权是其业务的重中之重,本文将介绍企业级网关-天际集成开放平台是如何通过Identit ...

  8. Web 开发中应用 HTML5 技术的10个实例教程

    HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...

  9. 黄文俊:Serverless小程序后端技术分享

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 黄文俊,现任腾讯云SCF无服务器云函数高级产品经理,多年企业级系统开发和架构工作经验,对企业级存储.容器平台.微服务架构.无服务器计算等领域 ...

最新文章

  1. 关于JAVA的String类的一些方法
  2. webpack学习1-打包
  3. 水晶报表工具栏出现红叉叉无法打印导出等问题的解决方法
  4. ios 不被遮挡 阴影_为何你没见到日环食?你不知道的天象常识原来还有这么多 | 返朴...
  5. iscsiadm及其他磁盘相关命令
  6. ArcGIS License Server Administrator 10.2 无法启动许可的解决办法
  7. IOT(33)---NB-IOT通用物联解决方案
  8. idea添加添加自动添加版本控制
  9. kafka从入门到精通:Java设置全局变量传值
  10. ValueError: could not broadcast input array from shape (*,*) into shape (*)
  11. 关于移动平台的viewport
  12. 今天加入了OSChina,准备将我的BLOG搬到这里。
  13. GeoServer在CentOS上部署的地图注记乱码问题
  14. ajax几种回调函数
  15. Win10永久禁用键盘上的num lock键,解决打字时经常误触的困扰
  16. [译]How To Use the Linux Auditing System on CentOS 7
  17. 原生JS实现 ‘Tab栏切换’,‘手风琴’,‘轮播图’效果
  18. 对于踏入社会的我们来说,学历到底有多重要?学历的用途介绍
  19. 【Python】基于OpenCV与UDP实现的视频流传输
  20. 《三》kubectl命令行管理工具、YAML配置详解

热门文章

  1. 《职场老油条系列》一、团队信任与承担责任
  2. Python3爬取汽车目标经销商数据
  3. AMBA 系列之 AHB 协议
  4. Extjs学习 数据模型Molde
  5. JS学习笔记——高级编程中compose函数的介绍和基本实现
  6. 智能小车设计思路简述
  7. 给自己的html5加上背景音乐,网页加背景音乐用JS控制播放 HTML5 - audio
  8. ckeditor3.0.1上传图片功能(.net版本)
  9. html5游戏刷分,google chrome浏览器离线小恐龙游戏刷分bug
  10. Hyper-V 使用ISO文件安装windows7