老弟js基础有点差,看这种代码感觉人被整晕了
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!')
// First input: hello!
ES6标准入门 阮一峰 generator函数语法章节代码,给generator函数包一层,使得第一个next方法就可以使用参数.
ES6.ruanyifeng.com原文位置
yield懂,剩余参数也懂.但是...哎~
wrapped就是wrapper return的function对吧.
执行wrapped()就是执行wrapper return的function(...args){},
wrapped执行时没有给参数,所以剩余参数args是undefined.//最后一行wrapped().next('hello!')
执行到generatorObject.next()不就是function*(){//somecode}.next()吗?
有什么不同呢?
特意将自己的错误理解写出来,求路过的大哥指点迷津.
球球了.