MyPromise.js是基于PromiseA+规范实现的一款 Mini Promise 类库。
liuxuan
主要为了通过手写一个Promise去理解其内部的运行机制,当你可以自己实现一个Promise时,你还会被它难住吗?大家可以参考这个项目自己实现一个Promise,欢迎star和提issue。
- PromiseA+规范的所有功能,主要是Promise.then()
- Promise.resolve()
- Promise.reject()
- Promise.defer()
- Promise.all()
- Promise.race()
- Promise.prototype.catch()
- Promise.prototype.done()
- Promise.prototype.finally()
- 引入
let Promise = require('./MyPromise');
- 使用
new Promise((resolve, reject) => {
resolve('my-promise');
}).then((data) => {
console.log(data);
}).catch((error) => {
console.log('error', error);
});
- 自己写测试
- index.js是使用该Promise的一些常用例子 test/test.js是基于 mocha + expect 写的几个单元测试例子
- 使用 promises-aplus-tests 测试
- 安装
npm install promises-aplus-tests -g
- 使用
promises-aplus-tests MyPromise.js
该Promise实现 100% 通过 promises-aplus-tests 测试,完整单元测试报告见 mochawesome-report/mochawesome.html