Skip to content

js的异步发展流程,callback->promise->generator->async await

Notifications You must be signed in to change notification settings

kaixinrenweb/async-process

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

异步发展流程

  • callback 多个请求并发 不好管理 链式调用导致嵌套的过多
  • promise 优点 可以优雅的处理异步 处理错误 缺点还是基于回调的,还是会有嵌套的问题
  • generator + co dva 让代码像同步一样的执行 不能支持try+catch
  • async await * 解决异步 问题的目前的终极的解决方案, 支持try+catch
视频观看地址:http://www.doudouyoutang.com/course.html

callback (回调函数)

  • js中的函数

高阶函数

  • 一个函数的参数 是函数
  • 一个函数的返回值 是函数
  • before方法
  • after方法

Case

  • 并行的读取文件
  • 依赖于after方法实现的
  • 依赖于发布订阅的设计模式来实现

设计模式

  • 发布订阅的设计模式
  • 观察者的设计模式

promise

  • 基本语法(语法糖)
  • 三种状态 默认状态: pending(等待) fulfilled(成功) rejected(失败)
  • promise一旦成功,就不能失败,一旦失败,就不能成功
  • 执行器同步执行 但是then是异步的
  • 执行器一旦运行报错,就会走reject
  • promise提供了链式调用
  • then方法执行的结果是一个promise,每次返回的promise都是一个新的promise
  • 自己写的promise要通过test测试,符合promise a+规范
  • resolve(new Promise)
  • catch方法,finally方法(原型上的方法,实例上的方法)
  • Promise.resolve / Promise.reject (类上面的方法)
  • Promise.all / Promise.race (类上面的方法)
  • promisify->promise

generator 生成器

  • iterator 迭代器 next()
  • generator 遇到yield会暂停执行

async await

  • generator + co = async await
  • async函数执行后返回的是一个promise
  • 如果try+catch 那么这个promise返回的就是真

About

js的异步发展流程,callback->promise->generator->async await

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published