Promise了解

Promise是一个构造函数,excutor是他的执行函数,同时也是构造函数的参数.

new Promise(excutor)

excutor有两个参数(resolve,reject)
Promise的三种状态

  • pending,Promise初始化时是该状态
  • fulfilled,Promise成功时是该状态,调用resolve
  • rejected,Promise失败时是该状态,调用reject
    Promise状态只能有pending => fulfilled/rejected, 一旦修改就不能再改变

使用方法

  1. promise.then(onFulfilled, onRejected)
    注意: 这样使用onRejected不会捕获到onFulfilled的异常.
    例如:
let promise = new Promise((resolve,reject)=>{
    resolve(1)
})
promise.then((val)=>{
    val.splice(0,1)
},(e)=>{
    console.log("11");
})
// 错误信息 
VM594:2 Uncaught (in promise) TypeError: val.splice is not a function
    at <anonymous>:2:9
  1. promise.then(onFulfilled).catch(onRejected)
    注意: 这样可以捕获onFulfilled中的异常
    例如:
let promise = new Promise((resolve,reject)=>{
    resolve(1)
})
promise.then((val)=>{
    val.splice(0,1)
})
.catch((e)=>{
    console.log("11");
})
// 输出 11

Promise.resolve
Promise.reject
Promise.all,全部为resolve才会调用
Promise.race
Promise.race,只要有一个promise对象进入 FulFilled 或者 Rejected 状态的话,就会继续进行后面的处理。

posted @ 2020-02-17 10:15  被咯苏州  阅读(158)  评论(0编辑  收藏  举报