如何在struct组件中正确使用@Concurrent装饰器?

当使用taskpool时候,如果在struct组件中使用@Concurrent,会报错: @Concurrent decorator can decorate only common functions and async functions.

尝试解决处理没有解决,不知道问题出在哪里

阅读 1.6k
1 个回答

示例如下:
taskpool.ets:
import { taskpool } from '@kit.ArkTS';
@Concurrent
async function delayExecute(): Promise<Object> {
let ret = await Promise.all<Object>([
new Promise<Object>(resolve => setTimeout(resolve, 1000, "resolved"))
]);
return ret;
}

export async function taskpoolExecute(): Promise<void> {
taskpool.execute(delayExecute).then((result: Object) => {
console.info("taskPoolTest task result: " + result);
}).catch((err: string) => {
console.error("taskpool test occur error: " + err);
});
}

Index.ets:
import { taskpoolExecute } from './taskpool'
Entry
@Component
struct StartCallDialogView {
aboutToAppear(): void {
taskpoolExecute()
}
build() {
...
}
}
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进