给定一个数组,拿到数组每一项然后间隔指定时间请求一次后端接口

120 阅读1分钟

最近遇到一个需求,前端拿到数组后,需要根据拿到数组的每一项的id间隔一段时间请求接口,然后JS是单线程的,你异步操作会单独放到任务队列里去执行,js继续执行下面同步代码。

    //第一种实现方式
    fn(){
      let i = 0;
      let arr = [{id:1},{id:2},{id:3},{id:4}];
      let work = (index)=>{console.log(arr[index])}
      let timer = setInterval(()=>{
        if(i<arr.length){
          work(i);
        }else{
          clearInterval(timer)
        }
        i++;
      },1000)
    },
    //第二种实现方式
    fn(){
      let arr = [{id:1},{id:2},{id:3},{id:4}];
      arr.map((item,index) => {
        (function(index) {
        setTimeout(function() {
            console.log(item);
        }, (index + 1) * 1000);
          })(index)
      })
      
    },