Node.js生成器,迭代器以及异步操作
Posted guoyinsheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js生成器,迭代器以及异步操作相关的知识,希望对你有一定的参考价值。
1.简易迭代器样板
1 function makeIterator(arr) { 2 let nextIndex = 0; 3 return { 4 next: () => { 5 if (nextIndex < arr.length) { 6 return { value: arr[nextIndex++], done: false }; 7 } else { 8 return { done: true }; 9 } 10 } 11 }; 12 } 13 14 const it = makeIterator(["吃饭", "睡觉", "打豆豆"]); 15 16 console.log("首先", it.next().value); 17 console.log("其次", it.next().value); 18 console.log("再次", it.next().value); 19 console.log("然后", it.next().value); 20 console.log("最后", it.next().value);
2.生成器版本:
1 function* makeIterator(arr) { 2 for (let i = 0; i < arr.length; i++) { 3 yield arr[i]; 4 } 5 } 6 const gen = makeIterator(["吃饭", "睡觉", "打豆豆"]); 7 console.log("首先", gen.next()); 8 console.log("其次", gen.next()); 9 console.log("再次", gen.next()); 10 console.log("然后", gen.next()); 11 console.log("最后", gen.next());
生成器打印结果:
1 λ node server2.js 2 首先 { value: ‘吃饭‘, done: false } 3 其次 { value: ‘睡觉‘, done: false } 4 再次 { value: ‘打豆豆‘, done: false } 5 然后 { value: undefined, done: true } 6 最后 { value: undefined, done: true }
以上是关于Node.js生成器,迭代器以及异步操作的主要内容,如果未能解决你的问题,请参考以下文章