import Prompt from '@system.prompt' const TAG = 'SURENJUN_JUDGE' interface DelayConfig{ isDelay: boolean delayTime?: number } interface QUEUE { fn: Function, delayConfig?: DelayConfig } type GoTask = (currentTask:QUEUE)=>Promise export default class JudgeTask { private queue?:QUEUE[] = [] private status: string constructor() { this.queue = [] this.status = 'end' } //执行任务 goTask:GoTask = async (currentTask:QUEUE) => { const fn = currentTask.fn; const delayConfig = currentTask.delayConfig || {isDelay:false,delayTime:1000} const isDelay = delayConfig.isDelay const delayTime = delayConfig.delayTime return false } executeQueue = async () => { const queue = this.queue; const executeQueue = this.executeQueue if (queue.length) { for (const currentTask of queue) { await this.goTask(currentTask) this.queue.shift() await executeQueue() } } else { this.status = 'end' } } addTask = async (fn:Function, delayConfig?: DelayConfig) => { this.queue.push({ fn, delayConfig }); if (this.status == 'end' && this.queue.length === 1) { await this.executeQueue(); } } }