minor fixes

This commit is contained in:
Ilya Kantor 2020-06-15 14:54:44 +03:00
parent 64b0ff3949
commit a9925f4917

View file

@ -179,10 +179,10 @@ If the browser doesn't support `Promise.allSettled`, it's easy to polyfill:
if(!Promise.allSettled) { if(!Promise.allSettled) {
Promise.allSettled = function(promises) { Promise.allSettled = function(promises) {
return Promise.all(promises.map(p => Promise.resolve(p).then(value => ({ return Promise.all(promises.map(p => Promise.resolve(p).then(value => ({
state: 'fulfilled', status: 'fulfilled',
value value
}), reason => ({ }), reason => ({
state: 'rejected', status: 'rejected',
reason reason
})))); }))));
}; };
@ -191,7 +191,7 @@ if(!Promise.allSettled) {
In this code, `promises.map` takes input values, turns them into promises (just in case a non-promise was passed) with `p => Promise.resolve(p)`, and then adds `.then` handler to every one. In this code, `promises.map` takes input values, turns them into promises (just in case a non-promise was passed) with `p => Promise.resolve(p)`, and then adds `.then` handler to every one.
That handler turns a successful result `value` into `{state:'fulfilled', value}`, and an error `reason` into `{state:'rejected', reason}`. That's exactly the format of `Promise.allSettled`. That handler turns a successful result `value` into `{status:'fulfilled', value}`, and an error `reason` into `{status:'rejected', reason}`. That's exactly the format of `Promise.allSettled`.
Now we can use `Promise.allSettled` to get the results of *all* given promises, even if some of them reject. Now we can use `Promise.allSettled` to get the results of *all* given promises, even if some of them reject.
@ -277,7 +277,7 @@ There are 5 static methods of `Promise` class:
1. `Promise.all(promises)` -- waits for all promises to resolve and returns an array of their results. If any of the given promises rejects, it becomes the error of `Promise.all`, and all other results are ignored. 1. `Promise.all(promises)` -- waits for all promises to resolve and returns an array of their results. If any of the given promises rejects, it becomes the error of `Promise.all`, and all other results are ignored.
2. `Promise.allSettled(promises)` (recently added method) -- waits for all promises to settle and returns their results as an array of objects with: 2. `Promise.allSettled(promises)` (recently added method) -- waits for all promises to settle and returns their results as an array of objects with:
- `state`: `"fulfilled"` or `"rejected"` - `status`: `"fulfilled"` or `"rejected"`
- `value` (if fulfilled) or `reason` (if rejected). - `value` (if fulfilled) or `reason` (if rejected).
3. `Promise.race(promises)` -- waits for the first promise to settle, and its result/error becomes the outcome. 3. `Promise.race(promises)` -- waits for the first promise to settle, and its result/error becomes the outcome.
4. `Promise.resolve(value)` -- makes a resolved promise with the given value. 4. `Promise.resolve(value)` -- makes a resolved promise with the given value.