当前位置:首页 > Web开发 > 正文

Node.js生成器,迭代器以及异步操作

2024-03-31 Web开发

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生成器,迭代器以及异步操作

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/38857.html