Cheat Sheet速查表
跳转到主要内容

Promise 异步处理 速查表

本文根据 Devhints / Promises 翻译。代码示例及版本范围沿用原文。

参考资料

简介

简介:JavaScript 快速参考 Promise API.

创建 Promise

new Promise((resolve, reject) => {
  doStuff(() => {
    if (success) {
      resolve('good')
    } else {
      reject(new Error('oops'))
    }
  })
})

使用 new Promise 用于创建新的 Promise。

使用 Promise

promise
  .then((result) => {
    /* success */
  })
  .catch((error) => {
    /* failure */
  })

then() 当 Promise 成功(resolve)时执行函数。 catch() 当 Promise 失败(reject)时执行。

多个 Promise

const promises = [promise1(), promise2() /* ... */]
// Succeeds when all succeed
Promise.all(promises).then((results) => {
  /* ... */
})
// Succeeds when one finishes first
Promise.race(promises).then((result) => {
  /* ... */
})

转换其他 Promise

return Promise.resolve('result')
return Promise.resolve(promise)
return Promise.resolve(thenable)

return Promise.reject('reason')

Promise.resolve(result).then(() => {
  /* ... */
})

Promise.resolve(val) 返回一个 Promise,该 Promise 会成功(resolve)并返回传入的值。