Proposal for Promise.prototype.flatten
Jordan Harband
ljharb at gmail.com
Wed Apr 24 05:58:26 UTC 2019
Would this not work?
async function test(promise1, promise2, promise3) {
const val1 = await promise1.catch(); // ignore exceptions
const [val2, val3] = [] = await Promise.all([promise2, promise3]).catch();
await Promise.all([promise1, promise2, promise3]); // throw to caller
return val1 + val2 + val3;
}
On Tue, Apr 23, 2019 at 1:25 PM Aaron Silvas <aaronsilvas at gmail.com> wrote:
> https://github.com/asilvas/proposal-promise-flatten
>
> Looking for interest, and TC39 champion.
>
> The basic idea is to provide a simpler, more consistent interface, and
> easier to read code over using try/catches for async code paths. Regardless
> of which errors are handled or ignored, it's treated as nothing more than
> another input in the result, not all that dissimilar to callbacks.
>
> async function test(promise1, promise2, promise3) {
> const [, val1] = await promise1.flatten(); // ignore exceptions
> const [err, [val2, val3] = []] = await Promise.all([promise2, promise3]).flatten();
>
> if (err) throw err; // throw to caller
>
> return val1 + val2 + val3;
> }
>
>
> Original topic that spurred interest in this pattern:
> https://twitter.com/DavidWells/status/1119729914876284928
>
> Spec discussions:
> https://twitter.com/Aaron_Silvas/status/1120721934730137601
>
>
> Thanks,
>
> Aaron
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190423/b7609d5d/attachment.html>
More information about the es-discuss
mailing list