Skip to content

取消动态订阅公共事件

场景介绍

动态订阅者完成业务需要时,需要主动取消订阅,订阅者通过调用 unsubscribe()方法取消订阅事件。

接口说明

  • 取消订阅公共事件
bash
unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback)

开发步骤

导入模块

js
import { BusinessError, commonEventManager } from "@kit.BasicServicesKit";
import { hilog } from "@kit.PerformanceAnalysisKit";

const TAG: string = "ProcessModel";
const DOMAIN_NUMBER: number = 0xff00;

根据动态订阅公共事件章节的步骤来订阅某个事件。

调用 CommonEvent 中的 unsubscribe()方法取消订阅某事件。

js
// subscriber为订阅事件时创建的订阅者对象
if (this.subscriber !== null) {
  commonEventManager.unsubscribe(this.subscriber, (err: BusinessError) => {
    if (err) {
      hilog.error(
        DOMAIN_NUMBER,
        TAG,
        `UnsubscribeCallBack err = ${JSON.stringify(err)}`
      );
    } else {
      hilog.info(DOMAIN_NUMBER, TAG, `Unsubscribe success`);
      this.subscriber = null;
    }
  });
}