update: Promise.all 和 Promise.race

This commit is contained in:
qianguyihao 2021-05-25 20:57:26 +08:00
parent cd7b5b2d60
commit 8268cf5150
2 changed files with 7 additions and 7 deletions

View File

@ -280,7 +280,7 @@ getPromise('a.json')
打印结果
```
'a: err
a: err
undefined
csuccess
```
@ -365,7 +365,7 @@ return 后面的返回值,有两种情况:
### 情况 1返回 Promise 实例对象
举例如下这个例子跟上一段 Ajax 链式调用 的例子差不多
举例如下
```js
getPromise('a.json')

View File

@ -24,7 +24,7 @@ Promise 的自带 API 提供了如下静态方法:
- `Promsie.all()`并发处理多个异步任务所有任务都执行成功才算成功走到 resolve只要有一个失败就会走到 reject整体都算失败
- `Promise.race()`并发处理多个异步任务返回的是第一个执行完成的 promise且状态和第一个任务状态保持一致
- `Promise.race()`并发处理多个异步任务返回的是第一个执行完成的 promise且状态和第一个完成的任务状态保持一致
前面的几篇文章讲的都是 Promise **实例方法**今天这篇文章我们来详细讲一下 Promise **静态方法**
@ -208,7 +208,7 @@ Promise.all([promise1, promise2, promise3])
## Promise.race()
`Promise.race([p1, p2, p3])`并发处理多个异步任务返回的是第一个执行完成的 promise且状态和第一个任务状态保持一致参数里传的是多个 promise 实例组成的数组
`Promise.race([p1, p2, p3])`并发处理多个异步任务返回的是第一个执行完成的 promise且状态和第一个完成的任务状态保持一致参数里传的是多个 promise 实例组成的数组
上面这句话第一次读时可能很绕口我说的再通俗一点在多个同时执行的异步任务中先找出哪个异步任务**最先执行完成**无论是走到 resolve还是走到 reject都算执行完成然后整体的状态跟这个任务保持一致如果这个任务执行成功那整体就算成功走到 then如果这个任务执行失败那整体就算失败走到 catch
@ -216,7 +216,7 @@ Promise.all([promise1, promise2, promise3])
我刚开始学 Promise.race()的时候误以为它的含义是只要有一个异步执行成功整体就算成功走到 then所有任务都执行失败整体才算失败走到 catch现在想来真是大错特错过于懵懂
我们来看看各种场景的打印结果便能让你擦干泪水
我们来看看各种场景的打印结果便能让你擦干泪水继续前行
### 语法举例
@ -246,12 +246,12 @@ const promise3 = new Promise((resolve, reject) => {
Promise.race([promise1, promise2, promise3])
.then((res) => {
// 只要有一个异步任务执行成功,就会走到这里
// 第一个完成的任务,如果执行失败,就会走到这里
// 这里拿到的 res是第一个成功的 promise 返回的结果,不是数组
console.log(JSON.stringify(res));
})
.catch((err) => {
// 所有异步任务异步都执行失败,才会走到这里
// 第一个完成的任务,如果执行失败,就会走到这里
console.log(err);
});
```