romiseState 状态属性

pendding:初始状态

resolved:成功

rejected:失败

PromiseResult 对象的值,保存着状态为成功或是失败所对应的结果.通过resolve方法和reject方法来操作这个结果

promise的基本流程

API

new Promise( 执行器函数 )

执行器函数 :  (revolve,reject)=>{} ;

revolve函数, 内部定义结果为成功时调用的函数value = >{};

reject函数, 内部定义结果为失败时调用的函数reason= >{};

revolve和reject是内置的API,当异步任务成功时会调用resolve,任务失败时会调用reject.

执行器函数会在promise内部立即被同步调用

then( onResolve , onReject )    ;

(1)onResolve函数,成功的回调函数 value=>{}

(2))onReject函数,失败的回调函数  reason=>{}

Promise.resolve()   promise对象身上的方法,而不是实例身上的方法    : value = >{}

1.快速的得到一个promise对象.返回的是一个成功或者失败的promise  ,即将传入的值封装成一个promise对象        

  value:成功的数据或者是promise对象

Promise.reject()   promise对象身上的方法,而不是实例身上的方法   :reason= >{}


1.快速的得到一个promise对象.返回的是一个失败的promise ,即将传入的值封装成一个promise对象,作为结果返回

Promise.all()    promise对象身上的方法,而不是实例身上的方法 

promise =>{}

接受一个数组,返回一个新的promise,只有所有的promise状态都是成功结果才是成功,只要有一个失败了,状态就是失败.成功状态返回的结果是每一个成功对象返回的结果组成的数组;失败的结果是失败状态的promise对象的结果

 

 Promise.race()   (  [ ] ) =>{} 参数一般是由多个promise组成的数组,返回结果是一个promise对象,结果的状态是由参数数组中第一个完成的promise对象所决定的

改变promise的状态

1.resolve函数    成功

2.rejec函数   失败 

3.throw抛出错误   失败

改变状态和执行回调函数谁先谁后?

 

promise.prototype.then,返回一个promise,状态由返回值决定

promise.prototype.then(value=>{

 1.抛出错误,返回的promise状态为失败

2.返回的结果是非promise类型的对象,状态未成功,结果为返回的那个值.return 123

3.返回的结果是promise对象,状态就是返回的这个promise的状态,结果就是返回的promise的结果

},reason=>{   })

异常穿透

其中任何一步的失败都由最后的catch捕获

中断promise链

在需要中断的位置返回一个状态为pendding的promise对象

async/await

执行 async 函数,返回的都是Promise对象

更多推荐

promise相关知识