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相关知识
发布评论