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