Promise学习总结

51 阅读1分钟
promise 是一个构造函数
// promise接受一个函数,该函数接受两个参数
new promise((resolve, reject) => {})

promise有三种状态,且promsie的状态只能修改一次

  • pending(初始)
  • fulfilled (成功)
  • rejected(失败)
new promise((resolve, reject) => {
//此处为同步执行

resolve(data) // 成功时调用,会将promise的状态更改为fulfilled

reject(data) // 失败时调用,会将promise的状态更改为rejected
})
then方法
// 创建一个成功状态的promise对象
let p = new promise((resolve, reject) => {resolve()})

//接受两个函数参数,then方法是微任务是异步执行
p.then(onResolved, onRejected)
// 成功时调用onResolved函数
// 失败时调用onRejected函数

//then方法返回的也是promise对象,使用可以使用链式操作
p.then(onResolved, onRejected)
.then(onResolved, onRejected)
.then(onResolved, onRejected)
catch 方法
let p = new promise((resolve, reject) => {resolve()})

//接受一个函数参数,只有失败时才会调用
p.catch(onRejected => {}) 
resolve 方法
//返回一个成功或者失败的promise 对象
p.resolve(value => {})
reject 方法
//返回一个失败的 promise 对象
p.reject(reason => {})
all 方法
//只有所有的 promise 都成功才成功, 只要有一个失败了就直接失败;
p.all(promises => {})
race 方法
//第一个完成的 promise 就是最终的结果状态
p.race(promises => {})