Nevermore98 / MyPromise

实现 Promise

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

如有不对,恳请斧正。

实现 Promise

包括:

  • Promise.prototype.then
  • Promise.prototype.catch
  • Promise.prototype.finally
  • Promise.resolve
  • Promise.reject
  • Promise.all
  • Promise.allSettled
  • Promise.race
  • Promise.any

测试

安装 Promises A+ 官方测试工具 promises-aplus-tests

npm install promises-aplus-tests -D

MyPromise.js 下实现 deferred 方法,并导出

MyPromise.deferred = function () {
  let result = {}
  result.promise = new MyPromise((resolve, reject) => {
    result.resolve = resolve
    result.reject = reject
  })
  return result
}

module.exports = MyPromise

package.json 文件中 devDependencies 下添加 scripts

{
  "devDependencies": {
    "promises-aplus-tests": "^2.1.2"
  },
  "scripts": {
    "test": "promises-aplus-tests MyPromise"
  }
}

最后运行 npm run test 所有872 测试用例均通过

参考

About

实现 Promise


Languages

Language:JavaScript 100.0%