javascript伪多线程代码
2022/10/25
function runTask(taskArr,processAsyncFun,maxRun){
return new Promise((resolve,reject)=>{
if (taskArr.length===0) {
resolve('over');
return;
}
let taskArrOrg = JSON.parse(JSON.stringify(taskArr));
taskArr = taskArr.reverse();
maxRun = Math.min.apply('',[maxRun,taskArr.length]);
let count=0;
let runTaskEach = async function(){
if(taskArr.length > 0){
taskCurr = taskArr.splice(-1)[0];
try{
await processAsyncFun(taskCurr,taskArrOrg.length-taskArr.length-1,taskArrOrg);
} catch(e) {
//console.log(e)
}
if(taskArr.length===0){
count++;
if (count===maxRun) {
resolve('over')
}
}else{
try{
await runTaskEach();
}catch(e){
}
}
}
}
for(let i=0;i<maxRun;i++){
runTaskEach(taskArr);
}
})
}静水缘首页
文章分类
最新文章
- nodejs私钥加密公钥解密的一个例子
- uniapp和微信小程序判断程序运行在开发或者测试或者线上版本的方法分别是什么
- electron使用electron-builder打包后模块包含exe文件执行失败
- Compile is disallowed on the main thread, if the buffer size is larger than 4KB
- better-sqlite3简介及常用操作
- nodejs 操作数据库的库
- nodejs使用http-proxy库实现多个域名代理和同时代理websocket的例子,代理包含https和http两种协议
- iis配置反向代理
- javascript伪多线程代码
- ip所在地址段判断