diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeTask.ets b/entry/src/main/ets/pages/judgeSDK/utils/judgeTask.ets new file mode 100644 index 00000000..d0d6fe3c --- /dev/null +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeTask.ets @@ -0,0 +1,58 @@ +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(); + } + } +} diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeTask.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeTask.ts deleted file mode 100644 index 4dbeec8f..00000000 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeTask.ts +++ /dev/null @@ -1,67 +0,0 @@ -import Prompt from '@system.prompt' - -const TAG = 'SURENJUN_JUDGE' - -interface QUEUE { - fn: Function, - config?: { - isDelay: boolean - delayTime: number - } -} - -export default class JudgeTask { - private queue = [] - private status: string - - constructor() { - this.queue = [] - this.status = 'end' - } - - // - goTask = async (currentTask) => { - const {fn,delayConfig={}} = currentTask; - const { isDelay = false,delayTime = 1000} = delayConfig - return new Promise(async (res, rej) => { - setTimeout(async () => { - try { - await fn() - res(true) - } catch (e) { - console.info(TAG, '过程任务执行失败=>' + JSON.stringify(e)) - Prompt.showToast({ - message: '过程任务执行失败=>' + JSON.stringify(e), - duration: 3000 - }); - res(false) - } - }, isDelay ? delayTime : 0); - }) - } - - executeQueue = async () => { - const {queue,executeQueue} = this - if (queue.length) { - for (const currentTask of queue) { - await this.goTask(currentTask) - this.queue.shift() - await executeQueue() - } - } else { - this.status = 'end' - } - } - - addTask = async (fn, delayConfig?: { - isDelay: Boolean, - delayTime?: Number - }) => { - this.queue.push({ - fn, delayConfig - }); - if (this.status == 'end' && this.queue.length === 1) { - await this.executeQueue(); - } - } -}