js 这个async异步代码怎么转成非ES6的形式?

let seconds = 0;  // 计秒数
const most = 9999999;//最大并发数

function foo(start){
let ep = new EventProxy();

if(seconds != 0){//判断计秒数是否初始化
    seconds = 0;
}
timer = (time) => {
    return new Promise((resolve) => {
        setTimeout(() => {
            seconds ++;
            resolve()
        }, time)
    })
}

/*ep.after('ok',most,function(){
    foo(start+most);//一个批次任务完成,递归进行下一批任务
});*/

let q=0; // 并发数
(async function(){
    for(let i=start;i<most;i++){    
    
        await timer(1000);
        
        if(q > most){
            console.log('max concurrency');
            break;//最多添加most个任务
        }
        
        if (seconds > 60) {
            console.log('共执行' + q + '并发数');
            seconds = 0;
            break; // 超过1分钟也退出
        }
        console.log(seconds + '秒');    
        q++;
    }
})();
}

里面的异步怎么转成非ES6的形式?我想得到的效果是计时器和循环异步,但是又有关联。我可以设置当计时器达到某个时间的时候,就终止循环。nodejs版本太低,我又没法更改版本,所以自能改自己的代码了。。。

阅读 2.9k
2 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题