• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 使用Emitter进行线程间通信
2
3
4[Emitter](../reference/apis/js-apis-emitter.md)主要提供线程间发送和处理事件的能力,包括对持续订阅事件或单次订阅事件的处理、取消订阅事件、发送事件到事件队列等。
5
6
7Emitter的开发步骤如下:
8
9
101. 订阅事件
11
12   ```ts
13   import emitter from "@ohos.events.emitter";
14
15   // 定义一个eventId为1的事件
16   let event: emitter.InnerEvent = {
17     eventId: 1
18   };
19
20   // 收到eventId为1的事件后执行该回调
21   let callback = (eventData: emitter.EventData) => {
22     console.info('event callback');
23   };
24
25   // 订阅eventId为1的事件
26   emitter.on(event, callback);
27   ```
28
292. 发送事件
30
31   ```ts
32   import emitter from "@ohos.events.emitter";
33
34   // 定义一个eventId为1的事件,事件优先级为Low
35   let event: emitter.InnerEvent = {
36     eventId: 1,
37     priority: emitter.EventPriority.LOW
38   };
39
40   let data = new Map<string, Object>();
41   data.set("content", "c");
42   data.set("id", 1);
43   data.set("isEmpty", false);
44   let eventData: emitter.EventData = {data};
45
46   // 发送eventId为1的事件,事件内容为eventData
47   emitter.emit(event, eventData);
48   ```
49