On Fri, Oct 11, 2019 at 9:53 PM Jacob Bloom wrote:
> What about special handling for Maps? Maybe something like
>
> ```
> const requests = new Map();
> requests.set('reqA', fetch('...'));
> requests.set('reqB', fetch('...'));
> const responses = await Promise.all(requests);
> console.log(
>
The RSVP library uses Promise.hash, which seems sensible enough that I'm
surprised no-one has mentioned or suggested it here.
--
Dammit babies, you've got to be kind.
On Mon, 14 Oct 2019 at 09:17, Michał Wadas wrote:
> Established name is Promise.properties
>
> On Mon,
Established name is Promise.properties
On Mon, 14 Oct 2019, 09:29 Cyril Auburtin, wrote:
> maybe a naming like: `Promise.allObject`
>
> ```js
> Promise.allObject = obj => {
> if (obj && !obj[Symbol.iterator]) {
> return Promise.all(
> Object.entries(obj).map(async ([k, v]) => [k,
maybe a naming like: `Promise.allObject`
```js
Promise.allObject = obj => {
if (obj && !obj[Symbol.iterator]) {
return Promise.all(
Object.entries(obj).map(async ([k, v]) => [k, await v])
)
.then(Object.fromEntries);
}
return Promise.all(obj);
}
var delay = t => new
Maybe Promise.join(object)? Also, if a map is passed (or any iterable), it
should be joined into a map.
At the most basic level:
```js
Promise.join = (o) => {
let isMap = o[Symbol.iterator] != null
let ps = (
isMap ? Array.from : Object.entries
)(o)
let ks = ps.map(p =>
OP probably means he would like Promise.all to return an object as well, if
an object if given
It's possible to hack an object to be iterable, but Promise.all
already return an array unfortunately
On Sun, Oct 13, 2019 at 7:16 PM Boris Zbarsky wrote:
> On 10/12/19 12:52 AM, Jacob Bloom wrote:
>
On 10/12/19 12:52 AM, Jacob Bloom wrote:
const responses = await Promise.all(requests);
As opposed to:
const responses = await Primise.all(requests.values());
which works right now?
-Boris
___
es-discuss mailing list
es-discuss@mozilla.org
What about special handling for Maps? Maybe something like
```
const requests = new Map();
requests.set('reqA', fetch('...'));
requests.set('reqB', fetch('...'));
const responses = await Promise.all(requests);
console.log(
responses.get('reqA'),
responses.get('reqB'),
);
```
...which would
Promise.all(Object.values(myObjWithPromiseValues)).then(...)
On Fri, Oct 11, 2019 at 10:22 AM Jordan Harband wrote:
> The current API accepts an *iterable*, which means any object that has
> `Symbol.iterator`, such as an array or a Set.
>
> Throwing when it receives a non-iterable object is an
The current API accepts an *iterable*, which means any object that has
`Symbol.iterator`, such as an array or a Set.
Throwing when it receives a non-iterable object is an important tool to
catch bugs. If Promise.all was made to accept a non-iterable object as
well, I suspect many bugs would go
Back when async/await was introduced I struggeled quite a bit with promises
arrays that have conditional promises. RxJS is moving from array only
support in theirs operators to objects too, there seems to be an actual
trend going on. Is there any reason
11 matches
Mail list logo