Generator trong JavaScript
Tồn tại các hàm đặc biệt, với sự trợ giúp của chúng có thể tạo ra các iterator của riêng mình. Các hàm như vậy được gọi là generator. Tên của các hàm đó phải bắt đầu với dấu hoa thị:
function *func() {
}
Bên trong generator, từ khóa
yield được sử dụng, chỉ định điều
mà iterator sẽ trả về ở
lần gọi tiếp theo. Ví dụ
hãy làm sao để lần gọi đầu tiên
trả về 1, lần thứ hai - 2,
và lần thứ ba - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generator trả về kết quả của nó là một iterator:
let iter = func();
Hãy kiểm tra hoạt động của iterator của chúng ta:
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Tạo một iterator, mỗi lần gọi của nó
sẽ trả về các số từ 5
đến 1.