判断迭代对象
function isGenerator (obj) {
return obj &&
typeof obj.next === 'function' &&
typeof obj.throw === 'function'
}
判断生成器函数
function isGeneratorFunction (fn) {
return typeof fn === 'function' &&
fn.constructor &&
fn.constructor.name === 'GeneratorFunction'
}