Mình đọc được một đoạn code ví dụ về function generator trong ES6, không hẳn là mình không hiểu nhưng mà rất mơ hồ, không diễn đạt được là nó chạy như nào. Anh em nào có tài liệu hoặc có cách giải thích nào dễ hiểu về cái này không thì chia sẻ cho mọi người cùng biết đi 
Đoạn code:
var foo, f;
foo = function * () {
console.log('generator 1');
console.log('yield 1', yield 'A');
console.log('generator 2');
console.log('yield 2', yield 'B');
console.log('generator 3');
};
f = foo();
console.log('tick 1');
console.log(f.next('a'));
console.log('tick 2');
console.log(f.next('b'));
console.log('tick 3');
console.log(f.next('c'));
console.log('tick 4');
console.log(f.next('d'));
Còn đây là kết qủa trên terminal:
tick 1
generator 1
{ value: 'A', done: false }
tick 2
yield 1 b
generator 2
{ value: 'B', done: false }
tick 3
yield 2 c
generator 3
{ value: undefined, done: true }
tick 4
{ value: undefined, done: true }