为了准备全面采用产量支持,我已经发现看似缺乏。
有没有办法检测某个函数是否是nodejs 0.11 +?
中的生成器答案 0 :(得分:2)
我不喜欢这样:
var
// pull out regex for speed
genRegex = /^function[\s]*\*/,
detectGenerator = function(mth){
return (typeof mth == 'function') &&
genRegex.test(mth.toString());
};
function * foo (){};
function *bar (){};
function* baz (){};
function*qux (){};
function non (){};
console.log(detectGenerator(function (){}), detectGenerator(function(){})) // false, false
console.log(detectGenerator(function *(){}), detectGenerator(function* (){})) // true, true
console.log(detectGenerator(function * (){}), detectGenerator(function*(){})) // true, true
console.log(detectGenerator(foo), detectGenerator(bar)) // true, true
console.log(detectGenerator(baz), detectGenerator(qux)) // true, true
console.log(detectGenerator(non)) // false
但它确实有效。
如果您有更好的选择,请回复。