Proposal: `await [p1, p2]` (equivalent to `await Promise.all([p1, p2])`)

Olivier Lalonde olalonde at gmail.com
Wed Oct 26 08:27:28 UTC 2016


Right it makes sense, should have thought about that! An `awaitAll` (or
other syntax) could be nice but it seems the general opinion is against.

On Wed, Oct 26, 2016 at 1:22 AM, kdex <kdex at kdex.de> wrote:

> It's especially beneficial for designing APIs where you don't care about if
> users pass you a `Promise` or the actual data to work with.
>
> Imagine a scenario where you would like to remove a set of files:
>
> ```js
> async function remove(filesArray) {
>         const files = await filesArray;
>         /* … work with `files` here …*/
> }
> ```
>
> In the scenario above, you could pass an array of files, or a `Promise`
> that resolves
> to said array; the function accepts both.
>
> On Wednesday, October 26, 2016 1:03:37 AM CEST Olivier Lalonde wrote:
> > I didn't realize `await` could be used on non-`Promise`s, never mind. I
> > wonder why that is, seems strange. Maybe so that async functions could be
> > more easily swapped out with sync ones in code? I do think `Promise.all`
> > should deserve special treatment because it is so common, unlike
> > Promise.race (who uses that seriously?) and future combinators. But I'm
> not
> > sure it is worth introducing new syntax for.
> >
> > On Wed, Oct 26, 2016 at 12:33 AM, Jordan Harband <ljharb at gmail.com>
> wrote:
> >
> > > Your suggestion would preclude having a promise for an array (exactly
> what
> > > `Promise.all` returns).
> > >
> > > If you want `await` syntax for `Promise.all`, you'd need different
> syntax
> > > for it - and then, what about `Promise.race`? What about other future
> > > combinators?
> > >
> > > On Wed, Oct 26, 2016 at 12:25 AM, Olivier Lalonde <olalonde at gmail.com>
> > > wrote:
> > >
> > >> I don't think so, what do you mean?
> > >>
> > >> On Wed, Oct 26, 2016 at 12:22 AM, Raul-Sebastian Mihăilă <
> > >> raul.mihaila at gmail.com> wrote:
> > >>
> > >>> Then Promise.resolve([p1, p2]) should be like Promise.all([p1, p2]) ?
> > >>>
> > >>> _______________________________________________
> > >>> es-discuss mailing list
> > >>> es-discuss at mozilla.org
> > >>> https://mail.mozilla.org/listinfo/es-discuss
> > >>>
> > >>>
> > >>
> > >>
> > >> --
> > >> - Oli
> > >>
> > >> Oli Lalonde
> > >> http://www.syskall.com <-- connect with me!
> > >>
> > >> _______________________________________________
> > >> es-discuss mailing list
> > >> es-discuss at mozilla.org
> > >> https://mail.mozilla.org/listinfo/es-discuss
> > >>
> > >>
> > >
> >
> >
> >
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>



-- 
- Oli

Oli Lalonde
http://www.syskall.com <-- connect with me!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20161026/22412fe1/attachment.html>


More information about the es-discuss mailing list