发布于

如何实现 ES6 中的 Promise 方法

作者
  • avatar
    姓名
    Jacob
    Twitter

Promise 基本用法

首先我们来看下 Promise 的基本使用方法

new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log('执行 resolve 函数')
    reject('error')
  }, 1000)
})
  .then(
    (res) => {
      console.log('Promise 执行成功1', res)
      return true
    },
    (err) => {
      console.log('Promise 执行失败1', err)
      return false
    }
  )
  .then(
    (res) => {
      console.log('Promise 执行成功2', res)
    },
    (err) => {
      console.log('Promise 执行失败2', err)
    }
  )

上述代码的执行结果如下:

执行 resolve 函数
Promise 执行失败1 error
Promise 执行成功2 false

由上述的代码以及执行结果我们可以得出以下结论:

  • then 函数的返回值依旧是 Promise
  • then 函数内的 return 若未使用 Promise.resolve 或者 Promise.reject,则会默认以 Promise.resolve 返回
  • 执行 resolve 之后 then 回调才会执行