Promise有哪几种方法?
时间: 2023-12-27 16:24:19 浏览: 38
Promise有以下几种方法:
1. `Promise.all(iterable)`:接收一个可迭代对象(比如数组)作为参数,返回一个新的Promise对象。当可迭代对象中的所有Promise都成功时,返回的Promise对象才会被解析为一个包含所有Promise结果的数组;如果可迭代对象中的任意一个Promise失败,则返回的Promise对象会被拒绝,并且会将第一个失败的Promise的错误信息作为拒绝的原因。
2. `Promise.race(iterable)`:接收一个可迭代对象作为参数,返回一个新的Promise对象。当可迭代对象中的任意一个Promise解决或拒绝时,返回的Promise对象也会解决或拒绝,并且会将第一个解决或拒绝的Promise的结果作为返回的Promise对象的结果。
3. `Promise.resolve(value)`:返回一个以给定值解析的Promise对象。如果传入的值是一个Promise对象,则直接返回该Promise对象;如果传入的值是一个thenable对象(即具有then方法的对象),则会将其转换为一个Promise对象并解析;否则,返回一个以该值解析的Promise对象。
4. `Promise.reject(reason)`:返回一个以给定原因拒绝的Promise对象。
5. `Promise.prototype.then(onFulfilled, onRejected)`:为Promise对象添加解决和拒绝时的回调函数。`onFulfilled`是当Promise解决时调用的函数,接收解决的值作为参数;`onRejected`是当Promise拒绝时调用的函数,接收拒绝的原因作为参数。`then`方法返回一个新的Promise对象,可以通过链式调用多个`then`方法。
6. `Promise.prototype.catch(onRejected)`:为Promise对象添加拒绝时的回调函数。`onRejected`是当Promise拒绝时调用的函数,接收拒绝的原因作为参数。`catch`方法返回一个新的Promise对象,可以通过链式调用多个`catch`方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)