美文网首页
JavaScript设计模式-0001---迭代器模式

JavaScript设计模式-0001---迭代器模式

作者: 八月飞花 | 来源:发表于2020-06-07 10:02 被阅读0次

使用闭包实现迭代器

//传入nex需要迭代的对象
function Iterator(obj){
  let i  =  0;
   return
    next:function(){
      return i<obj.length?
        {value:obj.value,done,false}:
        {done,true};
}

test

let arr=[1,2,3,4,5];
let it=Iterator(arr);
 //使用next方法将数据逐个的取出
console.log(it.next());//{value:1,done:false};

es6使用 生成器实完成迭代器模式

function* iterator(){
  yelid 1;
  yelid 2;
  yelid 3;
}

使用es6的生成器实现数据自增

只需要让while循环为死循环,但是yelid需要写在while之中,此时,每次调用这个函数的next的方法
自动返回自增的id值
function addId(){
  let id=0;
  while(true){
    yelid id++;
  }
}

迭代器/es6的生成器的使用场景

场景1
  我们在QQ中有一个 附近喜欢的人的功能 ,服务器在请求完数据之后,
  浏览器可以将数据进行一个迭代器包装,这样可以一个一个的取数据
  我们可以通过时间,将获取的数据的每一项都单独的展示,
  
  好处,如果是点击一次请求一次的话,会增加服务器的负担,而且频繁发送ajax
  等网络请求,可能发生交互卡顿等现象

相关文章

网友评论

      本文标题:JavaScript设计模式-0001---迭代器模式

      本文链接:https://www.haomeiwen.com/subject/jjelwhtx.html