• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 取消动态订阅公共事件
2
3
4## 场景介绍
5
6动态订阅者完成业务需要时,需要主动取消订阅,订阅者通过调用[unsubscribe()](../../reference/apis-basic-services-kit/js-apis-commonEventManager.md#commoneventmanagerunsubscribe)方法取消订阅事件。
7
8
9## 接口说明
10
11| 接口名 | 接口描述 |
12| -------- | -------- |
13| unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) | 取消订阅公共事件 |
14
15
16## 开发步骤
17
181. 导入模块。
19
20   ```ts
21   import Base from '@ohos.base';
22   import commonEventManager from '@ohos.commonEventManager';
23   import promptAction from '@ohos.promptAction';
24
25   const TAG: string = 'ProcessModel';
26   ```
27
282. 根据[动态订阅公共事件](common-event-subscription.md)章节的步骤来订阅某个事件。
29
303. 调用CommonEvent中的unsubscribe()方法取消订阅某事件。
31
32   ```ts
33   // subscriber为订阅事件时创建的订阅者对象
34   if (this.subscriber !== null) {
35     commonEventManager.unsubscribe(this.subscriber, (err: Base.BusinessError) => {
36       if (err) {
37         console.error(TAG, `UnsubscribeCallBack err = ${JSON.stringify(err)}`);
38       } else {
39         promptAction.showToast({
40           message: $r('app.string.unsubscribe_success_toast')
41         });
42         console.info(TAG, `Unsubscribe success`);
43         this.subscriber = null;
44       }
45     })
46   } else {
47     promptAction.showToast({
48       message: $r('app.string.unsubscribe_failed_toast')
49     });
50   }
51   ```
52