• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.events.emitter (Emitter)
2
3本模块提供发送和处理进程内事件的能力,包括对持续订阅事件或单次订阅事件的处理,取消订阅事件,发送事件到事件队列。
4
5> **说明:**
6>
7> 本模块首批接口从API version 7开始支持。
8
9## 导入模块
10
11```javascript
12import emitter from '@ohos.events.emitter'
13```
14
15## 权限列表
16
1718
19## emitter.on
20
21on(event: [InnerEvent](#innerevent), callback: Callback\<[EventData](#eventdata)\>): void
22
23持续订阅某个事件以及接收事件的回调处理。
24
25**系统能力**: SystemCapability.Notification.Emitter
26
27**参数:**
28
29| 参数名   | 类型                                | 必填 | 说明                                    |
30| -------- | ----------------------------------- | ---- | --------------------------------------- |
31| event    | [InnerEvent](#innerevent)           | 是   | 持续订阅的事件,其中EventPriority不生效 |
32| callback | Callback\<[EventData](#eventdata)\> | 是   | 接收订阅事件时的回调处理                |
33
34**示例:**
35
36```javascript
37let innerEvent = {
38    eventId: 1
39};
40function EmitterCallback(eventData) {
41    console.info('callback');
42}
43emitter.on(innerEvent, EmitterCallback);
44```
45
46## emitter.once
47
48once(event: [InnerEvent](#innerevent), callback: Callback\<[EventData](#eventdata)\>): void
49
50单次订阅某个事件以及接收事件的回调处理,接收到回调处理后自动取消订阅。
51
52**系统能力**: SystemCapability.Notification.Emitter
53
54**参数:**
55
56| 参数名   | 类型                                | 必填 | 说明                                    |
57| -------- | ----------------------------------- | ---- | --------------------------------------- |
58| event    | [InnerEvent](#innerevent)           | 是   | 单次订阅的事件,其中EventPriority不生效 |
59| callback | Callback\<[EventData](#eventdata)\> | 是   | 接收订阅事件时的回调处理                |
60
61**示例:**
62
63```javascript
64let innerEvent = {
65    eventId: 1
66};
67function EmitterCallback(eventData) {
68    console.info('once callback');
69};
70emitter.once(innerEvent, EmitterCallback);
71```
72
73## emitter.off
74
75off(eventId: number): void
76
77取消订阅某个事件。
78
79**系统能力**: SystemCapability.Notification.Emitter
80
81**参数:**
82
83| 参数名  | 类型   | 必填 | 说明   |
84| ------- | ------ | ---- | ------ |
85| eventId | number | 是   | 事件ID |
86
87**示例:**
88
89```javascript
90emitter.off(1);
91```
92
93## emitter.emit
94
95emit(event: InnerEvent, data?: EventData): void
96
97发送一个事件到事件队列。
98
99**系统能力**: SystemCapability.Notification.Emitter
100
101**参数:**
102
103| 参数名 | 类型                      | 必填 | 说明           |
104| ------ | ------------------------- | ---- | -------------- |
105| event  | [InnerEvent](#innerevent) | 是   | 发送的事件     |
106| data   | [EventData](#eventdata)   | 否   | 事件携带的数据 |
107
108**示例:**
109
110```javascript
111let eventData = {
112    data: {
113        "content": "c",
114        "id": 1,
115    }};
116let innerEvent = {
117    eventId: 1,
118    priority: emitter.EventPriority.HIGH
119};
120emitter.emit(innerEvent, eventData);
121```
122
123## EventPriority
124
125用于表示事件被投递的优先级。
126
127**系统能力**:  以下各项对应的系统能力均为 SystemCapability.Notification.Emitter
128
129| 名称      | 值   | 说明                                                |
130| --------- | ---- | --------------------------------------------------- |
131| IMMEDIATE | 0    | 表示事件被立即投递。                                |
132| HIGH      | 1    | 表示事件先于LOW优先级投递。                         |
133| LOW       | 2    | 表示事件优于IDLE优先级投递,事件的默认优先级是LOW。 |
134| IDLE      | 3    | 表示在没有其他事件的情况下,才投递该事件。          |
135
136## InnerEvent
137
138进程内的事件。
139
140**系统能力**: 以下各项对应的系统能力均为 SystemCapability.Notification.Emitter
141
142| 名称     | 类型                        | 可读 | 可写 | 说明                               |
143| -------- | ------------------------------- | ---- | ---- | ---------------------------------- |
144| eventId  | number                          | 是   | 是   | 事件的ID,由开发者定义用来辨别事件。 |
145| priority | [EventPriority](#eventpriority) | 是   | 是   | 事件被投递的优先级。         |
146
147## EventData
148
149发送事件时传递的数据。
150
151**系统能力**: 以下各项对应的系统能力均为 SystemCapability.Notification.Emitter
152
153| 名称 | 类型           | 可读 | 可写 | 说明           |
154| ---- | ------------------ | ---- | ---- | -------------- |
155| data | [key: string]: any | 是   | 是   | 发送事件时传递的数据,数据类型支持字符串、整型和布尔型。<br> 其中字符串长度最大为10240字节。 |