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 => p[0])
return Promise.all(ps.map(p => p[1]))
.then(vs => {
let ps = vs.map((v, i) => [ks[i], v])
return isMap
? new Map(ps)
: Object.fromEntries(ps)
})
}
```
On Sun, Oct 13, 2019 at 13:40 Cyril Auburtin <[email protected]>
wrote:
> 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 <[email protected]> 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
>> [email protected]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
--
-----
Isiah Meadows
[email protected]
www.isiahmeadows.com
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss