How to tell function and generator function apart?

Benjamin Gruenbaum inglor at gmail.com
Tue Mar 3 23:51:58 UTC 2015


Yes, don't make the distinction and instead run only promises - provide a function that takes a sequence and returns a promise over it. Not every iterable sequence is a sequence of async values.

> On Mar 3, 2015, at 22:54, Dean Landolt <dean at deanlandolt.com> wrote:
> 
> One use case is for coroutine runners which accept either generators or generator functions:
> 
> https://github.com/deanlandolt/copromise/blob/master/copromise.js#L34-L36
> 
> Is there a better way to accomplish this?
> 
> 
>> On Tue, Mar 3, 2015 at 12:12 PM, Erik Arvidsson <erik.arvidsson at gmail.com> wrote:
>> Why do you want to do this?
>> 
>> It is an antipattern that we have covered before. 
>> 
>>> On Tue, Mar 3, 2015 at 5:41 PM Guilherme Souza <19gui94 at gmail.com> wrote:
>>> Hi all,
>>> 
>>> I was wondering how one could check if a given function is a generator function, is a cross-realm way:
>>> 
>>> ```
>>> let f = function(){}
>>> let g = function*(){}
>>> 
>>> typeof f === typeof g // 'function'
>>> 
>>> f instanceof Function // true, but only in the same Realm
>>> g instanceof Function // true, but again only in the same Realm
>>> 
>>> let GeneratorFunction = Object.getPrototypeOf(function*(){}).constructor
>>> f instanceof GeneratorFunction // false
>>> g instanceof GeneratorFunction // true, but only in the same Realm
>>> 
>>> // This works, but relies on Function.prototype being a function itself.
>>> typeof Object.getPrototypeOf(f) // 'function'
>>> typeof Object.getPrototypeOf(g) // 'object'
>>> ```
>>> 
>>> So what is the recommended way to do this type of check?
>>> Would something like `Array.isArray` for generator functions be helpful?
>>> 
>>> Regards,
>>> Gui
>>> 
>>> 
>>> _______________________________________________
>>> 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/20150304/d722e37d/attachment.html>


More information about the es-discuss mailing list