HarmonyOS鸿蒙Next中emitter.off如何取消指定的订阅。
HarmonyOS鸿蒙Next中emitter.off如何取消指定的订阅。 请问在有多个订阅的情况下,如何取消 emitter的某一个指定的订阅?
4 回复
EventHub.off传入callback:取消指定的callback对指定事件的订阅,当该事件触发后,将不会回调该callback。
import { UIAbility } from '@kit.AbilityKit';
export default class EntryAbility extends UIAbility {
onCreate() {
this.context.eventHub.on('myEvent', this.eventFunc1);
this.context.eventHub.off('myEvent', this.eventFunc1); // 取消eventFunc1对myEvent事件的订阅
this.context.eventHub.on('myEvent', this.eventFunc1);
this.context.eventHub.on('myEvent', this.eventFunc2);
this.context.eventHub.off('myEvent'); // 取消eventFunc1和eventFunc2对myEvent事件的订阅
}
eventFunc1() {
console.log('eventFunc1 is called');
}
eventFunc2() {
console.log('eventFunc2 is called');
}
}
更多关于HarmonyOS鸿蒙Next中emitter.off如何取消指定的订阅。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,emitter.off
用于取消事件监听器。要取消指定的订阅,需要传递两个参数:事件名称和对应的回调函数。具体如下:
emitter.off(eventName: string, callback: Function);
eventName
:要取消订阅的事件名称。callback
:之前注册的用于处理该事件的回调函数。
示例代码:
import emitter from '@ohos.events.emitter';
// 定义事件名称
const eventName = 'myEvent';
// 定义回调函数
const myCallback = (eventData: any) => {
console.log('Event received:', eventData);
};
// 订阅事件
emitter.on(eventName, myCallback);
// 取消订阅事件
emitter.off(eventName, myCallback);
通过emitter.off
并传入正确的事件名称和回调函数,可以成功取消指定的订阅。
在HarmonyOS鸿蒙Next中,emitter.off
用于取消事件监听器。要取消指定的订阅,需要传入事件类型和对应的回调函数。例如:
emitter.off('eventName', callbackFunction);
其中,eventName
是事件类型,callbackFunction
是之前通过emitter.on
注册的回调函数。调用后,该事件将不再触发指定的回调函数。