- 自己封装的一个
promise
- 旨在关注
promise
的内部原理 - 虽然在开发的过程中不会使用自己封装的
promise
,但是自己去封装,就会对promise
的内容运行的原理比较的了解,这样有助于在开发的过程中遇到问题,也能很快的定位问题,从而解决问题
- 一部分一部分的完善
- v1...表示每个版本的完善
- 测试文件
- 每个版本的测试,一一对应
promise
是一种承诺,对应了三个状态pending
,fulfilled
,rejected
, 默认为pending
- 执行器
exector
会立即执行 - 执行器
exector
中,一旦成功,就不能失败,一旦失败,也不能成功
- 基本的
promise exector
执行器 exector
中的异步处理exector
中的异常的处理then
方法的实现
then
方法返回一个新的promise
- 实现
promise
的链式调用 - 兼容其他的
promise
,遵循promise a+
规范
- 在链式调用的过程中,如果
resolve
返回的依然是一个promise
的递归解析处理 - 链式调用中,如果
then
方法中没有传入成功或者失败的回调函数的兼容处理
- 测试
promise
是否符合promise a+
规范
npm install promises-aplus-tests -g
promises-aplus-tests 4.MyPromise_v4.js
promise
延迟对象promise
延迟对象实现读取文件的简便方式
- 如果
new Promise
里,resolve(new Promise)
- 在
resolve
方法中增加一个判断value instanceof Promise
- 在
Promise
上增加捕获错误的方法catch
- 在
Promise
上增加Promise.resolve
直接成功的方法 - 在
Promise
上增加Promise.reject
直接失败的方法
- 在
Promise
上增加all
方法 - 在
Promise
上增加race
方法
- 重写
node
中的promisify
函数 promisify
旨在将一个node
的函数promise
化- 便于使用
promise
链式调用处理
generator
生成器iterator
迭代器- 迭代器有一个
next
的方法,每次调用后都会返回value, done
两个属性 - 类数组,有长度,有索引,是个对象,能被迭代