49 行
1.3 KiB
Plaintext
49 行
1.3 KiB
Plaintext
export class HelloWorkerTask extends WorkerTaskImpl {
|
|
//constructor
|
|
constructor() {
|
|
super();
|
|
//初始化操作
|
|
console.log("[WorkerTask] HelloWorkerTask 构造器初始化");
|
|
}
|
|
|
|
//实现入口函数
|
|
override entry() {
|
|
//Worker启动时的入口函数
|
|
console.log("[WorkerTask] HelloWorkerTask 启动完成,等待主线程消息");
|
|
}
|
|
|
|
//接收主线程发送的消息
|
|
override onMessage(message : any) {
|
|
console.log('[WorkerTask] 收到主线程消息: ', message);
|
|
|
|
// 处理消息对象
|
|
const messageData = message as UTSJSONObject;
|
|
const msgData = messageData['data'] as string;
|
|
const needReply = messageData['needReply'] as boolean;
|
|
|
|
console.log(`[WorkerTask] 数据: ${msgData}, 需要回复: ${needReply}`);
|
|
|
|
// 根据是否需要回复来处理
|
|
if (needReply) {
|
|
this.sendReply(msgData);
|
|
}
|
|
}
|
|
|
|
// 发送回复消息
|
|
private sendReply(msgData : string) {
|
|
const response = new UTSJSONObject();
|
|
|
|
// 尝试将接收到的数据转换为数字并加1
|
|
const inputNumber = parseInt(msgData);
|
|
if (isNaN(inputNumber)) {
|
|
response.data = `输入"${msgData}"不是有效数字`;
|
|
} else {
|
|
const result = inputNumber + 1;
|
|
response.data = result.toString()
|
|
}
|
|
|
|
console.log('[WorkerTask] 发送回复消息:', response);
|
|
this.postMessage(response);
|
|
}
|
|
}
|