Promise静态方法

Promise构造函数还有一些值得探索的静态方法,所有的代码文件都存储在 code/promises/static-methods.js 中,我们列出一些值得注意的部分:

  • Promise.resolve: 一种创建promise对象的快捷方式,并resolve一个给定的值:
function getData() {
  return Promise.resolve('some data')
}

getData().then(d => console.log(d))
  • Promise.reject: 一种创建promise对象的快捷方式,并rejected一个给定的值:
function rejectPromise() {
  return Promise.reject(new Error('something went wrong'))
}
rejectPromise().catch(e => console.log(e))
  • Promise.all:用来等待一些promise对象全部resolve
const p1 = Promise.resolve('v1')
const p2 = Promise.resolve('v2')
const p3 = Promise.resolve('v3')

const all = Promise.all([p1, p2, p3])

all.then(values => console.log(values[0], values[1], values[2]))

注意,Promise.all接受一个包含promise对象的数组,然后等待它们全部resolve。这意味我们可以使用Promise.all并行处理异步任务,处理完成后,Promise.all会返回一个promise对象,这个对象中包含了所有的处理结果,每个结果都按照既定顺序存放在一个数组中。

用户头像
登录后发表评论