Generator函数是ES6提供的一种异步编程解决方案,具体请看Generator函数教程。Generator函数有多种理解角度。从语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态。
执行Generator函数会返回一个遍历器对象,也就是说,Generator函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历Generator函数内部的每一个状态。
JavaScript中如何手动模拟创建Iterators迭代器(遍历器)
通过代码实现,具体如下
/**
* JavaScript中手动模拟创建Iterators迭代器
*/
function Iterators(args) {
let i = 0;
return {
next() {
let done = (i >= args.length - 1);
let value = args[i++];
return {
value: value,
done: done
}
}
}
}
//进行测试验证结果
let test = Iterators(['microzz', '涵月天', 'IT技术分享']);
console.log(test.next()); // { value: 'microzz', done: false }
console.log(test.next()); // { value: '涵月天', done: false }
console.log(test.next()); // { value: 'IT技术分享', done: true }
console.log(test.next()); // { value: undefined, done: true }