forked from fanruan/fineui
10 changed files with 116 additions and 18 deletions
@ -1,5 +0,0 @@ |
|||||||
class CrudMainTreadWorker extends BI.Workers.MainThreadWorker { |
|
||||||
protected initActions(): void { |
|
||||||
// to init some actions |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,13 @@ |
|||||||
|
import { WorkerAbilityTestActionType } from '../../utils/action_type'; |
||||||
|
import { WorkerAbilityTestPayload, WorkerAbilityTestReponse } from '../../utils/payload_type'; |
||||||
|
|
||||||
|
export class WorkerAbilityTestMainThreadAction extends BI.Workers.WorkerBaseAction { |
||||||
|
/** |
||||||
|
* 通信能力检测 |
||||||
|
*/ |
||||||
|
public communicationTest(): Promise<WorkerAbilityTestReponse['CommunicationTest']> { |
||||||
|
const mainThreadPostTime: WorkerAbilityTestPayload['CommunicationTest'] = Date.now(); |
||||||
|
|
||||||
|
return this.controller.requestPromise(WorkerAbilityTestActionType.CommunicationTest, mainThreadPostTime); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
import { WorkerAbilityTestMainThreadAction } from './action/action.worker_ability_test'; |
||||||
|
// 不需要一起打包的话则不需要引入这行 |
||||||
|
import { workerUrl } from 'fui-worker!../worker_thread/${workerName}_worker_thread'; |
||||||
|
|
||||||
|
class ${WorkerName}MainTreadWorker extends BI.Workers.MainThreadWorker { |
||||||
|
private communicationTest: WorkerAbilityTestMainThreadAction; |
||||||
|
|
||||||
|
public initActions(): void { |
||||||
|
this.communicationTest = this.createAction(WorkerAbilityTestMainThreadAction); |
||||||
|
} |
||||||
|
|
||||||
|
public testCommunication() { |
||||||
|
return this.communicationTest.communicationTest(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
const ${workerName}MainTreadWorker = BI.Workers.createWorker(${WorkerName}MainTreadWorker, { |
||||||
|
workerUrl, |
||||||
|
workerName: BI.UUID(), |
||||||
|
}); |
||||||
|
|
||||||
|
${workerName}MainTreadWorker.testCommunication() |
||||||
|
.then(v => { |
||||||
|
console.log(v); |
||||||
|
}); |
@ -0,0 +1,8 @@ |
|||||||
|
/* |
||||||
|
* Worker 事务标识 |
||||||
|
* 每类事务有命名空间, 包含多个具体事务 |
||||||
|
*/ |
||||||
|
|
||||||
|
export const enum WorkerAbilityTestActionType { |
||||||
|
CommunicationTest = 'CommunicationTest', |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
/** |
||||||
|
* 跨线程通信各事务的发送数据类型声明 |
||||||
|
*/ |
||||||
|
export interface WorkerAbilityTestPayload { |
||||||
|
CommunicationTest: number; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 跨线程通信各事务的响应数据类型声明 |
||||||
|
*/ |
||||||
|
export interface WorkerAbilityTestReponse { |
||||||
|
CommunicationTest: number; |
||||||
|
} |
@ -1,5 +0,0 @@ |
|||||||
class CrudWorkerTreadWorker extends BI.Workers.MainThreadWorker { |
|
||||||
protected initActions(): void { |
|
||||||
// to init some actions |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,24 @@ |
|||||||
|
import { WorkerAbilityTestActionType } from '../../utils/action_type'; |
||||||
|
import { WorkerAbilityTestPayload, WorkerAbilityTestReponse } from '../../utils/payload_type'; |
||||||
|
|
||||||
|
export class WorkerAbilityTestWorkerThreadAction extends BI.Workers.WorkerBaseAction { |
||||||
|
protected addActionHandler(): void { |
||||||
|
this.controller.addActionHandler( |
||||||
|
WorkerAbilityTestActionType.CommunicationTest, |
||||||
|
this.communicationTest.bind(this) |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 通信能力检测的处理器 |
||||||
|
*/ |
||||||
|
private communicationTest( |
||||||
|
payload: WorkerAbilityTestPayload['CommunicationTest'] |
||||||
|
): WorkerAbilityTestReponse['CommunicationTest'] { |
||||||
|
const mainThreadPostTime = payload; |
||||||
|
// 收到主线程信息的耗时 |
||||||
|
const workerGetMessageDuration = Date.now() - mainThreadPostTime; |
||||||
|
|
||||||
|
return workerGetMessageDuration; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
// TODO: 这边需要先import fineui资源 |
||||||
|
import { WorkerAbilityTestWorkerThreadAction } from './action/action.worker_ability_test'; |
||||||
|
|
||||||
|
class ${WorkerName}WorkerTreadWorker extends BI.Workers.MainThreadWorker { |
||||||
|
public communicationTest: WorkerAbilityTestWorkerThreadAction; |
||||||
|
|
||||||
|
public initActions(): void { |
||||||
|
this.communicationTest = this.createAction(WorkerAbilityTestWorkerThreadAction); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
export const ${workerName}WorkerTreadWorker = BI.Workers.createWorker(${WorkerName}WorkerTreadWorker); |
Loading…
Reference in new issue