kaixinrenweb / promise-generator-async-await

about promise,generator,async await by myself

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MyPromise

  • 自己封装的一个promise
  • 旨在关注promise的内部原理
  • 虽然在开发的过程中不会使用自己封装的promise,但是自己去封装,就会对promise的内容运行的原理比较的了解,这样有助于在开发的过程中遇到问题,也能很快的定位问题,从而解决问题

Process

  • 一部分一部分的完善
  • v1...表示每个版本的完善

Test

  • 测试文件
  • 每个版本的测试,一一对应

Base

  • promise是一种承诺,对应了三个状态 pending, fulfilled, rejected, 默认为pending
  • 执行器exector会立即执行
  • 执行器exector中,一旦成功,就不能失败,一旦失败,也不能成功

v1

  • 基本的promise exector执行器
  • exector中的异步处理
  • exector中的异常的处理
  • then方法的实现

v2

  • then方法返回一个新的promise
  • 实现promise的链式调用
  • 兼容其他的promise,遵循promise a+规范

v3

  • 在链式调用的过程中,如果resolve返回的依然是一个promise的递归解析处理
  • 链式调用中,如果then方法中没有传入成功或者失败的回调函数的兼容处理

v4

  • 测试promise是否符合promise a+规范
    npm install promises-aplus-tests -g
    promises-aplus-tests 4.MyPromise_v4.js

Case

  • promise延迟对象
  • promise延迟对象实现读取文件的简便方式

v6

  • 如果new Promise里,resolve(new Promise)
  • resolve方法中增加一个判断value instanceof Promise

v7

  • Promise上增加捕获错误的方法catch
  • Promise上增加Promise.resolve直接成功的方法
  • Promise上增加Promise.reject直接失败的方法

v8

  • Promise上增加all方法
  • Promise上增加race方法

v9

  • 重写node中的promisify函数
  • promisify旨在将一个node的函数promise
  • 便于使用promise链式调用处理

Generator

  • generator生成器
  • iterator迭代器
  • 迭代器有一个next的方法,每次调用后都会返回value, done两个属性
  • 类数组,有长度,有索引,是个对象,能被迭代

About

about promise,generator,async await by myself


Languages

Language:JavaScript 100.0%