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版本太低,我又没法更改版本,所以自能改自己的代码了。。。
你可以在线编译
https://www.typescriptlang.or...
https://babeljs.io/repl
编译async异步代码的原理就是转成generator,编译结果的可读性基本没有