Generator 的语法一章的wrapper包装例子是不是可以简化
bsc2xp opened this issue · comments
在 Generator 的语法那章里, 为了解释 next 方法传参的机制,给了一个例子,如下:
`
function wrapper(generatorFunction) {
return function (...args) {
let generatorObject = generatorFunction(...args);
generatorObject.next();
return generatorObject;
};
}
const wrapped = wrapper(function* () {
console.log(First input: ${yield}
);
return 'DONE';
});
wrapped().next('hello!')
`
我一直没想明白 wrapper 为什么还要返回一个 function ,就这个示例的目的而言写成下面这样不行吗:
`function wrapper(generatorFunction) {
let generatorObject = generatorFunction();
generatorObject.next();
return generatorObject;
}
const wrapped = wrapper(function* () {
console.log(First input: ${yield}
);
return 'DONE';
});
wrapped.next('hello!')
`
这样简单一点,原文是构造一个 Generator API 兼容对象。