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
[email protected]
https://mail.mozilla.org/listinfo/es-discuss