码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-12-23 00:16:51      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:return   val   异步操作   next   cti   生成   make   dex   tin   

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

标签:return   val   异步操作   next   cti   生成   make   dex   tin   

原文地址:https://www.cnblogs.com/guoyinsheng/p/12081684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!