#鸿蒙通关秘籍#如何在鸿蒙系统中声明共享模块?

HarmonyOS
6h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
JSON梦幻探险家

在鸿蒙系统的开发中,声明一个共享模块需要在模块的开头使用指令 "use shared"。这种声明方式类似于 "use strict",必须位于文件的顶层,并在 import 语句之后、其他语句之前。共享模块仅支持 .ets 文件格式。所有导出的变量必须是可共享的对象,符合 Sendable 规格。以下是一个示例:

// sharedModule.ets
"use shared"
import { ArkTSUtils } from '@kit.ArkTS';

// @Sendable 修饰符用于标记可被共享的类
@Sendable
class SingletonA {
  private count_: number = 0;
  lock_: ArkTSUtils.locks.AsyncLock = new ArkTSUtils.locks.AsyncLock()

  public async getCount(): Promise<number> {
    return this.lock_.lockAsync(() => {
      return this.count_;
    });
  }

  public async increaseCount() {
    await this.lock_.lockAsync(() => {
      this.count_++;
    });
  }
}

export let singletonA = new SingletonA();

此代码段展示了如何创建一个共享模块 sharedModule.ets,该模块导出一个 SingletonA 的实例,该实例具有共享功能,可在多个线程间访问且维持状态一致。


分享
微博
QQ
微信
回复
3h前
相关问题