HarmonyOS 线程中使用AppStorage报错ReferenceError: AppStorage is not defined

let task = new taskpool.Task(test2, 1);
taskpool.execute(task).then(() => {

}).catch((error: Error) => {
  console.error("error:" + error)
})
@Concurrent
function test2(a: number) {
  let n:number = a;
  console.info("sendable: taskpool count is:");
  AppStorage.setOrCreate("xxx", 1111);
}

报错:

E     [default] CallForNapi:3043 occur exception need return
E     [(native_api.cpp:1205)(napi_call_function)] pending exception when js function called, print exception info:
E     ReferenceError: AppStorage is not defined
E         at test2 (entry|entry|1.0.0|src/main/ets/pages/Index.ts:133:5)
E     [(worker.cpp:555)(HandleFunctionException)] taskpool::PerformTask occur exception
HarmonyOS
2024-12-27 14:18:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

AppStorage应用全局的UI状态存储 :https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-appstorage-V5

Taskpool是一个并发任务调度框架,它可以在多个线程中执行任务,但是AppStorage是一个用于存储应用程序数据的属性包装器,它只能在主线程中使用。

如果在Taskpool中尝试使用AppStorage,可能会导致数据不一致或者崩溃等问题。因此,应该确保在使用AppStorage时只在主线程中操作。

分享
微博
QQ
微信
回复
2024-12-27 16:28:44
相关问题
AppStorage是否将对象共享到其他线程
1009浏览 • 1回复 待解决
HarmonyOS UI内部使用AppStorage问题
792浏览 • 1回复 待解决
Localstorage与AppStorage区别
2738浏览 • 1回复 待解决
HarmonyOS AppStorage不可调用
620浏览 • 1回复 待解决
HarmonyOS AppStorage.Get替代方法
273浏览 • 1回复 待解决
AppStorage 作用范围是怎样的
2623浏览 • 1回复 待解决
LocalStorage和AppStorage有什么区别?
1513浏览 • 2回复 待解决
HarmonyOS AppStorage能存储多大的信息量
487浏览 • 1回复 待解决
#鸿蒙学习大百科#什么是AppStorage
488浏览 • 1回复 待解决