Promise.all 函数外返回值
时间: 2023-12-23 22:28:12 浏览: 30
根据提供的引用内容,Promise.all函数的返回值是一个Promise对象。当传入的promise数组中的所有promise都变为fulfilled状态时,返回的Promise对象也会变为fulfilled状态,并且其结果是一个包含所有promise结果的数组。如果传入的promise数组中有一个或多个promise变为rejected状态,返回的Promise对象会变为rejected状态,并且其结果是第一个被rejected的promise的结果。
以下是一个使用Promise.all函数的示例:
```javascript
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'foo');
});
Promise.all([promise1, promise2, promise3])
.then(values => {
console.log(values); // 输出:[3, 42, 'foo']
})
.catch(error => {
console.log(error); // 如果有一个promise被rejected,会输出该promise的错误信息
});
```
在上面的示例中,我们创建了三个promise对象,其中promise1是一个已经fulfilled的promise,promise2是一个普通的值,promise3是一个在100毫秒后变为fulfilled状态的promise。通过调用Promise.all函数并传入这三个promise,我们可以得到一个新的Promise对象。当所有的promise都变为fulfilled状态时,该Promise对象的结果是一个包含所有promise结果的数组[3, 42, 'foo']。如果其中一个promise被rejected,该Promise对象会变为rejected状态,并且其结果是被rejected的promise的结果。