ES5的状态机写法:
var ticking = trye;
var clock = function () {
if (ticking){
console.log('Tick!')
}else{
console.log('Tock!')
}
ticking = !ticking;
}
上面的 clock 函数一共有两种状态( Tick 和 Tock ),每运行一次,就改变一次状态。这个函数如果用 Genertor 实现,代码如下:
var clock = function* f() {
while (true){
console.log('Tick!');
yield;
console.log('Tock!');
yield;
}
};
clock.next();//clock.next is not a function 有谁能解释一下?
把赋值变量写到后面:
function* f() {
while (true){
console.log('Tick!');
yield;
console.log('Tock!');
yield;
}
};
var clock = f();
clock.next();//Tick 正常输出
clock.next();//Tock 正常输出