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

Reply via email to