这是我参与「第五届青训营 」笔记创作活动的第16天
一、重点内容:
Promise的resolve、reject、all、race、any方法。
二、详细知识点介绍:
Promise可以不用new,可以直接使用,Promise可以直接调用resolve、reject、all、race、any方法
Promise.resolve([参数])方法:
如果参数为非promise对象则结果为成功的promise,参数为promise对象则结果由参数中的promise结果决定(成功或者失败)
Promise.reject([参数])方法:
不管参数是不是promise对象,结果都是失败的回调
Promise.all([数组]):
该方法用于将数组中的promise对象统一处理,只有数组里面的promise对象都为成功Promise.all方法返回的promise对象才为成功,并且返回结果为数组中所有promise成功的信息组成的数组;如果数组中有失败的promise则Promise.all方法返回失败的promise对象,失败的结果为数组中第一个失败的promise返回的错误信息(多个失败的promise,也只会返回第一个失败的结果信息)
Promise.any([数组]):
该方法用于数组中的promise对象统一处理,作用与Promise.all方法相反。只有数组中所有的promise对象都为失败方法返回的promise对象的状态才为失败,结果为所有失败promise对象的错误信息组成的数组;如果有成功的promise对象则方法返回的promise为第一个成功的promise对象的状态和结果
Promise.race([数组])方法:
该方法返回的结果为数组中第一个改变状态的promise对象的结果,如果数组中第一个promise是异步的则会先执行数组中后面的promise对象,只要改变执行了并且把promise的状态由padding -> fulfilled或者padding -> rejected,那么方法返回的结果就是这个promise返回的结果
Promise.finally()方法:
无论参数中promise对象成功还是失败都会执行的方法
三、课后个人总结:
通过对本次课程的学习让我对Promise有了大致的了解,了解了Promise也可以直接调用reserve等方法,以及Promise的方法都是有什么用,如何用的有了初步的了解。
四、引用参考:
Promise博客文章以及视频