When creating iterators and async iterators outside generators, it'd be *extremely* useful to have these exposed more easily accessible...
Generators are *super* useful about 99% of the time in my experience, but there is that 1% where generators don't really work - this is not uncommon when you're adapting something to one of those two interfaces, like adapting an event emitter, and a few of the more complex operators, like "zip" (which is just easier to write using a raw iterator). ----- Isiah Meadows [email protected] www.isiahmeadows.com ----- Isiah Meadows [email protected] www.isiahmeadows.com On Tue, Aug 14, 2018 at 10:58 AM T.J. Crowder <[email protected]> wrote: > > This is the way I've found so far, allocating as few temporary objects as > possible (one, can't get rid of that temp function): > > ```js > const AsyncIteratorPrototype = > Object.getPrototypeOf( > Object.getPrototypeOf( > async function*(){} > ).prototype > ); > ``` > > or, showing the steps more clearly: > > ```js > const asyncGeneratorFunctionInstance = async function*(){}; > const AsyncGeneratorFunction = > Object.getPrototypeOf(asyncGeneratorFunctionInstance); > const AsyncGeneratorPrototype = AsyncGeneratorFunction.prototype; > const AsyncIteratorPrototype = Object.getPrototypeOf(AsyncGeneratorPrototype); > ``` > > (I could create an async generator by calling that temporary async generator > function, but then I just have to do another `Object.getPrototypeOf`, so it > doesn't really buy me anything.) > > Is there something more direct? (Remember that `AsyncGeneratorFunction` isn't > globally exposed like `Function` is. None of the new subclasses of Function > constructors are exposed; according to [this thread][1], there weren't enough > strong use cases [that thread is for `GeneratorFunction`, but we can > extrapolate].) > > -- T.J. Crowder > > [1]: > https://esdiscuss.org/topic/why-generatorfunction-constructor-isn-t-directly-exposed-to-end-users > _______________________________________________ > 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

