@Sendable编译报错,有什么方法解决?

// SendClass.ets 
@Sendable 
export class SendClass { 
  aaa() { 
    console.log('treeli::: i’m SendClass') 
  } 
} 
 
// TestSend.ets 
@Concurrent 
function taskFunc(sendObj: SendClass): number { 
  sendObj.aaa() 
  return 1 
} 
 
export class TestSend { 
  start() { 
    let task: taskpool.Task = new taskpool.Task(taskFunc, new SendClass()); 
    taskpool.execute(task) 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

报错如下:

ERROR: ArkTS:ERROR File: /Users/didi/DevEcoStudioProjects/OkHttp/entry/src/main/ets/pages/SendClass.ets:2:2Cannot find name ‘Sendable’. 
WARN: ArkTS:WARN File: /Users/didi/DevEcoStudioProjects/OkHttp/entry/src/main/ets/pages/SendClass.ets:2:1No decorators except ArkUI decorators are currently allowed (arkts-no-decorators-except-arkui)
  • 1.
  • 2.
HarmonyOS
2024-04-27 23:24:35
1756浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
e_lion

参考如下链接:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/arkts-utils/arkts-sendable.md​​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-taskpool-0000001774280766#ZH-CN_TOPIC_0000001774280766__setclonelist11

一定要通过setCloneList和Array的组合来设置,如下:

let baseInstance1: BaseClass = new BaseClass(); 
let array1 = new Array<BaseClass>(); 
array1.push(baseInstance1); 
let task1 = new taskpool.Task(testFunc, array1, 10); 
task1.setCloneList(array1); 
taskpool.execute(task1)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
分享
微博
QQ
微信
回复
2024-04-28 17:42:19


相关问题
查询应用信息方法编译报错
1228浏览 • 1回复 待解决
HarmonyOS 支付报错,求解决方法
1416浏览 • 1回复 待解决
RN SDK升级报错,求解决方法
1116浏览 • 1回复 待解决
HarmonyOS 使用了@Sendable注解的类报错
1105浏览 • 1回复 待解决
应用运行报错内存不足闪退解决方法
323浏览 • 0回复 待解决
computeScroll() 方法鸿蒙什么可以替代
6584浏览 • 1回复 待解决
HarmonyOS 编译flutter报错
1023浏览 • 1回复 待解决
页面截图功能,什么好的方法
1672浏览 • 2回复 待解决