您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Asynchronous array handle
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greatest.deepsurf.us/scripts/380535/680853/Parallel.js
// ==UserScript== // @name Parallel // @namespace http://tampermonkey.net/ // @version 0.2 // @description Asynchronous array handle // @author You // ==/UserScript== class Parallel{ constructor(count=3){ this.count=3 } partial(data,count){ let r=[]; let l=data.length; let dataPerThread=parseInt(l/count); if (dataPerThread==0){ dataPerThread=1; } for (let i=0;i<l;i+=dataPerThread){ let to=Math.min(i+dataPerThread,l); let d=data.slice(i,to); r.push(d); } return r; } async run(data,action,isReturn=false){ let results=[]; for (let x in data){ let r=action(data[x]); if (r instanceof Promise){ r=await r; } if (isReturn){ results.push(r); } } if (isReturn){ return results; } } async forEach(data,action){ data=this.partial(data,this.count); let threads=[]; for (let i in data){ let d=data[i]; threads.unshift(this.run(d,action)); } for (let x in threads){ await threads[x]; } } async map(data,action){ data=this.partial(data,this.count); let threads=[]; for (let i in data){ let d=data[i]; threads.unshift(this.run(d,action,true)); } let results=[]; for (let x in threads){ results=results.concat(await threads[x]); } return results; } }