Using Emitter for Inter-Thread Communication

Emitter provides APIs for sending and processing events between threads, including the APIs for processing events that are subscribed to in persistent or one-shot manner, unsubscribing from events, and emitting events to the event queue.

To develop the Emitter mode, perform the following steps:

  1. Subscribe to an event.

    import emitter from "@ohos.events.emitter";
    
    // Define an event with eventId 1.
    let event = {
      eventId: 1
    };
    
    // Trigger the callback after the event with eventId 1 is received.
    let callback = (eventData) => {
      console.info('event callback');
    };
    
    // Subscribe to the event with eventId 1.
    emitter.on(event, callback);
    
  2. Emit the event.

    import emitter from "@ohos.events.emitter";
    
    // Define an event with eventId 1 and priority Low.
    let event = {
      eventId: 1,
      priority: emitter.EventPriority.LOW
    };
    
    let eventData = {
      data: {
        "content": "c",
        "id": 1,
        "isEmpty": false,
      }
    };
    
    // Emit the event with eventId 1 and event content eventData.
    emitter.emit(event, eventData);