Proposal for Promise.prototype.flatten
Aaron Silvas
aaronsilvas at gmail.com
Tue Apr 23 20:24:52 UTC 2019
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190423/82b3acc8/attachment.html>
More information about the es-discuss
mailing list