19、Promise 是什么?

72 阅读1分钟

Promise 是 JS 中的一种异步处理方式,用于表示异步的结果

状态:pending(进行中)、fulfilled(已完成)、rejected(已拒绝)

状态流转:pending => fulfilled;pending => rejected;

使用方式:

// 基本使用 1
new Promise((resolve, reject) => {
  // ....
  resolve()
}).then(res => {
  console.log('成功了', res)
}, err => {
  console.log('失败了', err)
}).finally(() => {
  console.log('结束了')
})

// 基本使用 2
new Promise((resolve, reject) => {
  // ....
  resolve()
}).then(res => {
  console.log('成功了', res)
}).catch(err => {
  console.log('失败了', err)
}).finally(() => {
  console.log('结束了')
})

常用方法:

Promise.resolve(1).then(res => {
  console.log('成功了', res) // 1
})

Promise.rejected(1).catch(err => {
  console.log('失败了', err) // 1
})

Promise.all([Promise.resolve(1), Promise.resolve(2)]).then(res => {
  console.log('都成功了', res) // [1, 2]
})
.catch((err) => {
  console.log("有一个失败了", err);
});

Promise.race([Promise.resolve(1), Promise.resolve(2)]).then(res => {
  console.log('有成功的', res) // 1 或 2
})
.catch((err) => {
  console.log("有一个失败了", err);
});

补充知识:7、简单手写 Promise - 掘金