学习纲要:异步流程处理

在处理复杂的异步流程时,用异步结束后,在回调函数中执行下一个异步的方式,会导致回调函数深度嵌套的问题。让代码变得难以维护。

学习条件

  1. 了解 JavaScript 中的异步

学习目标

  • 会用 Promise,async/await,事件发布订阅这几种方式处理异步流程。
  • 知道如何捕获和处理异步中的报错。

学习资源

习题

有如下几个异步的函数

function thing1() {
  setTimeout(function(){
    console.log('thing1 done')
  }, 100)
}

function thing2() {
  setTimeout(function(){
    if(Math.random() < 0.5) {
      console.log('thing2 done')
    } else {
      throw 'error' // 报错。可修改这边的代码。
    }
  }, 200)
}

function thing3() {
  setTimeout(function(){
    console.log('thing3 done')
  }, 50)
}

function thing4() {
  setTimeout(function(){
    console.log('thing4 done')
  }, 50)
}

修改上面的代码,用 Promise,async/await,事件发布订阅 这几种方式实现下面的需求

  • thing1执行完执行 thing2,thing2 执行完执行 thing3。
  • thing1,thing2 同时执行。都成功执行完执行 thing3。否则执行 thing4。
  • thing1,thing2,thing3 同时执行。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小狼的世界

Firebug Command Line 的使用技巧

Commandlinie是Firebug中总有用的一个特性。如果你有Microsoft Visual Studio的使用经验,你就会知道“Immediate W...

12030
来自专栏落影的专栏

iOS开发笔记(六)

前言 专注、坚持,是优良的品格。 正文 1、cell和cell.contentView 的区别 在给UITableViewCell添加视图的时候,我们有以下两种...

34550
来自专栏angularejs学习篇

angularjs学习第四天笔记(第一篇:简单的表单验证)

您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指...

12620
来自专栏carven

koa+socket.io尝试简单的web动作同步

尝试用过browser-sync辅助开发的前端同学,大概都会感到神奇:在多个端打开网页,网页的动作却是完全同步的。

12300
来自专栏10km的专栏

java:关于properties配置文件中的换行(多行)的坑

properties中都是以name=value这样的k-v字符串对形式保存的。 在写properties文件时,如果value非常长,看起来是非常不方便的...

21480
来自专栏听雨堂

从MapX到MapXtreme2004[1]-工具选择

  网上的MapXtreme的资料实在太少了,MapXtreme编程基本上只能靠英文帮助和以前的Mapx的一些底子。我想写一个系列,把Mapx到Mapxtrem...

232100
来自专栏腾讯NEXT学位

Vue.js最佳实践(五招让你成为Vue.js大师)

60570
来自专栏不止是前端

TS+React+Router+Mobx+Koa打造全栈应用

50970
来自专栏ThoughtWorks

你不知道的高性能JAVASCRIPT | TW洞见

想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影。 本文会分享一些高效的JavaScript的最佳实践,提高大家对...

35550
来自专栏DeveWork

【译】WordPress 中的50个过滤器(2):先介绍10个过滤器

在上一篇文章中,我们介绍了WordPress 世界的过滤器;本篇文章的话我们将要探索50个笔者精选的过滤器,并一一通过例子解释其如何工作的。 事不宜迟,让...

22960

扫码关注云+社区

领取腾讯云代金券