您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Asynchronous array handle
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/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;
- }
- }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址