Stream + async await

T.J. Crowder tj.crowder at farsightsoftware.com
Mon Jul 31 11:35:32 UTC 2017


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 <kaizhu256 at gmail.com> 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 <thejamesernator at gmail.com>
> 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
> > es-discuss at mozilla.org
> > https://mail.mozilla.org/listinfo/es-discuss
>
> _______________________________________________
> 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/20170731/4bc2c7a8/attachment.html>


More information about the es-discuss mailing list