美文网首页
2023-05-10

2023-05-10

作者: _____西班木有蛀牙 | 来源:发表于2023-05-09 14:05 被阅读0次
    // 循环执行一组数据并调用回调函数对数据进行处理
    async function loopData(data, callback, interval = 1000) {
      for (let i = 0; i < data.length; i++) {
        callback(data[i]);
        await delay(interval);
      }
    }
    
    // 延时函数
    function delay(ms) {
      return new Promise((resolve) => setTimeout(resolve, ms));
    }
    
    // 控制执行流程
    async function runData(dataList, interval, isQueue, callback) {
      if (isQueue) {
        for (let i = 0; i < dataList.length; i++) {
          await loopData(dataList[i], interval, callback);
        }
      } else {
        const promises = dataList.map((data) => loopData(data, interval, callback));
        await Promise.all(promises);
      }
    }
    
    // 示例:按队列执行两组数据,每隔1秒执行一次,并调用外部回调函数对数据进行处理
    const dataQueue = [
      [1, 2, 3],
      ["a", "b", "c"],
    ];
    runData(
      dataQueue,
      1000,
      true,
      function myCallback(data) {
        console.log(`Processing data ${data}`);
      }
    );
    
    // 示例:同时执行两组数据,每隔2秒执行一次,并调用外部回调函数对数据进行处理
    const dataParallel = [
      [1, 2, 3],
      ["a", "b", "c"],
    ];
    runData(
      dataParallel,
      2000,
      false,
      function myCallback(data) {
        console.log(`Processing data ${data}`);
      }
    );
    
    

    相关文章

      网友评论

          本文标题:2023-05-10

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