1# 使用Emitter进行线程间通信 2 3[Emitter](../../reference/apis-basic-services-kit/js-apis-emitter.md)主要提供线程间发送和处理事件的能力,包括对持续订阅事件或单次订阅事件的处理、取消订阅事件、发送事件到事件队列等。 4 5Emitter的开发步骤如下: 6 71. 订阅事件 8 9 ```ts 10 import { emitter } from '@kit.BasicServicesKit'; 11 import { promptAction } from '@kit.ArkUI'; 12 import { hilog } from '@kit.PerformanceAnalysisKit'; 13 14 const TAG: string = 'ThreadModel'; 15 const DOMAIN_NUMBER: number = 0xFF00; 16 ``` 17 ```ts 18 // 定义一个eventId为1的事件 19 let event: emitter.InnerEvent = { 20 eventId: 1 21 }; 22 23 // 收到eventId为1的事件后执行该回调 24 let callback = (eventData: emitter.EventData): void => { 25 promptAction.showToast({ 26 message: JSON.stringify(eventData) 27 }); 28 hilog.info(DOMAIN_NUMBER, TAG, 'event callback:' + JSON.stringify(eventData)); 29 }; 30 31 // 订阅eventId为1的事件 32 emitter.on(event, callback); 33 promptAction.showToast({ 34 message: JSON.stringify('emitter subscribe success') 35 }); 36 ``` 37 382. 发送事件 39 ```ts 40 // 定义一个eventId为1的事件,事件优先级为Low 41 let event: emitter.InnerEvent = { 42 eventId: 1, 43 priority: emitter.EventPriority.LOW 44 }; 45 46 let eventData: emitter.EventData = { 47 data: { 48 content: 'c', 49 id: 1, 50 isEmpty: false 51 } 52 }; 53 54 // 发送eventId为1的事件,事件内容为eventData 55 emitter.emit(event, eventData); 56 ```