代码拉取完成,页面将自动刷新
toy promise 是根据 Promise/A+ 规范 与 Promise/ES262 规范实现的 Promise
并且本仓库已经通过了 Promise/A+ 规范测试工具 和 Promise/ES262 规范测试工具 的全部测试
本仓库在源码中标注了大部分的规范要求,参阅者可以很好的了解为什么实现某些功能
如下图,以编号开头的注释,就是对应的 Promise/A+ 规范要求
ES262-
编号开头的,就是对应的 Promise/ES262 规范要求npm install
npm run dev
npm run build
npm run lint
npm run test:aplus
npm run test:es6
注:当前并未提供单测脚本,运行版本单测文件需手动执行 node test/version/v1.test
.
├── LICENSE ------------------------------------- 开源许可
├── README.md ----------------------------------- 说明文档
├── dist --------------------------------------- ts 编译输出目录
├── readme ------------------------------------- readme.md 相关资料
├── index -------------------------------------- index 入口
├── lib ----------------------------------------- toy-promise 源码
├── mock ---------------------------------------- mock 异步方法
├── package.json -------------------------------- package.json
├── test ---------------------------------------- 测试代码目录
└── tsconfig.json ------------------------------- tsconfig.json
/lib
下/lib
├── common.ts ---------------------------------- 通用方法实现
├── createPromiseInstance.ts ------------------- 创建 Promise 实例的工厂函数
├── resolvePromise.ts -------------------------- then 递归穿透方法
├── throwError.ts ------------------------------ 抛出异常函数
└── index.ts ---------------------------------- Promise 核心实现
/test/version
├── common.js --------------------------------- 封装的一些测试常用方法
├── v1.test.js -------------------------------- v1 版本测试用例
├── v2.test.js ------------------------------- v2 版本测试用例
└── v3.test.js ------------------------------- v3 版本测试用例
node /test/version/v1.test
功能 | TP 版本 | ES 版本 | 状态 |
---|---|---|---|
new Promise(executor) | v1.0 | ES2015 | |
Promise.prototype.then(onFulfilled, onRejected) | v1.0 | ES2015 | |
Promise.prototype.catch(onRejected) | v2.0 | ES2015 | |
Promise.resolve(value) | v2.0 | ES2015 | |
Promise.reject(reason) | v2.0 | ES2015 | |
Promise.all(iterable) | v3.0 | ES2015 | |
Promise.prototype.finally(onFinally) | v3.0 | ES2018 | |
Promise.race(iterable) | v4.0 | ES2015 | |
Promise.allSettled(iterable) | v5.0 | ES2020 | |
Promise.any(iterable) | v5.0 | ES2021 |
由于 Promise/A+ 规范中只要求了 then 方法,所以其余方法根据 ES262 规范实现。
每个版本都提供了相应的 Tag 以便查阅。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。