Promise
是一种异步编程的解决方案,用于处理异步操作和回调地狱问题。
Promise
对象有三种状态:pending(进行中)
、fulfilled(已成功)
和rejected(已失败)
。
Promise
对象的状态只能从 pending
转变为 fulfilled
或 rejected
,一旦转变,就不能再次改变。
Promise
对象的构造函数接受一个函数作为参数,该函数接受两个参数 resolve
和 reject
,分别表示 Promise
对象的解决和拒绝。
Promise 对象的 then
方法用于添加解决和拒绝的回调函数,并返回一个新的 Promise
对象。
Promise 对象的 catch
方法用于添加拒绝的回调函数,并返回一个新的 Promise
对象。
Promise 对象的 finally
方法用于添加一个回调函数,该函数在 Promise
对象被解决或拒绝后都会被调用,并返回一个新的 Promise 对象。
Promise.all
方法接受一个 Promise 对象数组
作为参数,返回一个 Promise
对象,该对象在传入的所有 Promise 对象都被解决
后才会被解决,并将所有 Promise 对象的结果作为一个数组传递给 .then
方法中的回调函数。
Promise.race
方法接受一个 Promise 对象数组
作为参数,返回一个 Promise 对象,该对象在传入的任意一个 Promise 对象被解决或拒绝
后就会被解决或拒绝,并将第一个被解决或拒绝的 Promise 对象
的结果传递给 .then
方法中的回调函数或 .catch
方法中的回调函数。
Promise.resolve
方法返回一个以给定值解析后的 Promise 对象
。
Promise.reject
方法返回一个以给定原因被拒绝的 Promise 对象
。
Promise.allSettled
方法返回一个 Promise 对象,该对象在传入的所有 Promise 对象都被解决或拒绝后才会被解决,并将每个 Promise 对象的结果作为一个对象 {status: 'fulfilled’, value: result} 或 {status: 'rejected’, reason: error} 放入一个数组中传递给 .then 方法中的回调函数。