В первый раз, когда вы сделаете следующее (), он будет выполняться до первой доходности.
function wrapper(generatorFunction) {
return function (...args) {
let generatorObject = generatorFunction(...args);
generatorObject.next(); // Will Print till yield keyword => First Yield Call
console.log('About to pass in a value to First Input');
let done = generatorObject.next(42); // Will Print and Bring the next yielded value => First Input 22
console.log(done);
return generatorObject;
};
}
wrapped = wrapper(function* () {
console.log('First Yield Call');
console.log(`First input: ${yield}`);
return 'DONE';
});
wrapped();