Javascript 未从生成器函数调用console.log
我第一次在javascript中使用生成器函数,遇到了一些有趣的问题 代码: 从未调用过“TESTING 2”console.log。如果我不将maxDate传递给生成器函数,它也不会引发错误。这一定是发电机的问题,我不见了 编辑以显示用法Javascript 未从生成器函数调用console.log,javascript,Javascript,我第一次在javascript中使用生成器函数,遇到了一些有趣的问题 代码: 从未调用过“TESTING 2”console.log。如果我不将maxDate传递给生成器函数,它也不会引发错误。这一定是发电机的问题,我不见了 编辑以显示用法 recur(1, 'day')(moment()) 似乎需要调用next以在第一个yield之前运行代码?在生成器函数中,第一个yield语句之前的代码在生成器运行到该点之前执行: let a = function * () { console.log
recur(1, 'day')(moment())
似乎需要调用next以在第一个yield之前运行代码?在生成器函数中,第一个
yield
语句之前的代码在生成器运行到该点之前执行:
let a = function * () {
console.log(1);
yield 2;
yield 3;
}
let b = a(); // no console output!
let c = b.next(); // prints 1 to the console
c // { value: 2, done: false }
在生成器函数中,第一个
yield
语句执行之前的代码,不早于生成器执行到该点:
let a = function * () {
console.log(1);
yield 2;
yield 3;
}
let b = a(); // no console output!
let c = b.next(); // prints 1 to the console
c // { value: 2, done: false }
使用生成器的代码在哪里?使用生成器的代码在哪里?我认为这就是问题所在。需要对返回的生成器对象调用Next以在第一个yield之前运行代码?是的,必须调用Next以继续执行下一个yield语句。在此之前,您可能认为生成器在函数的第0行“暂停”。我认为这就是问题所在。需要对返回的生成器对象调用Next以在第一个yield之前运行代码?是的,必须调用Next以继续执行下一个yield语句。在此之前,您可能认为生成器在函数的第0行“暂停”。