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

Reply via email to