Nodejs中如何检查一个函数是否为GeneratorFunction(生成器,也就是function*)。
我一开始是想用typeof或者instanceof,发现达不到目的
其实可以这么做:

1
2
3
4
5
6
7
8
function isGenerator(fn) {
return fn && fn.constructor.name === 'GeneratorFunction';
}

var a = function *() {}
var b = function () {}
console.log(isGenerator(a)); // true
console.log(isGenerator(b)); // false