Related: https://esdiscuss.org/topic/how-about-awaiting-arrays (particularly the discussion of `await.race`), since effectively you're doing a race between a timeout and each chunk. Also relevant is the former work on cancelling promises, now withdrawn. (Can anyone point me at *why* it was withdrawn?)
-- T.J. Crowder On Mon, Jul 31, 2017 at 6:10 AM, kai zhu <[email protected]> wrote: > the timeout handler will not work as advertised, e.g. what if io / db > issues causes a network stream to intermittently respond in intervals far > greater than 30000ms or not at all? > > > On Jul 31, 2017, at 7:26 AM, James Browning <[email protected]> > wrote: > > > > It'll look something like this: > > > > ```javascript > > > > async function consumeReadableStream(stream) { > > const start = Date.now() > > for await (const chunk of stream) { > > > > /* Do whatever you want with the chunk here e,g, await other > > async tasks with chunks > > send them off to wherever, etc > > */ > > > > if (Date.now() - start > 30000) { > > throw new Error('30000 ms timeout') > > } > > } > > /* Instead of callbackOnce the returned promise from this function > > itself can be used */ > > } > > > > ``` > > _______________________________________________ > > es-discuss mailing list > > [email protected] > > https://mail.mozilla.org/listinfo/es-discuss > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

