您的位置:首页 > 健康 > 养生 > 宁波网站优化如何_网站流程图_营销型网站的分类_晚上看b站

宁波网站优化如何_网站流程图_营销型网站的分类_晚上看b站

2025/4/16 1:09:16 来源:https://blog.csdn.net/weixin_48639457/article/details/147135469  浏览:    关键词:宁波网站优化如何_网站流程图_营销型网站的分类_晚上看b站
宁波网站优化如何_网站流程图_营销型网站的分类_晚上看b站
import { emitter } from '@kit.BasicServicesKit';/*** TODO Emitter工具类(进行线程间通信)* author: 鸿蒙布道师* since: 2025/04/11*/
export class EmitterUtil {/*** 发送事件* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param eventData 发送的数据* @param priority 事件被发送的优先级,默认为 HIGH。*/static post<T>(eventId: string | number,eventData: T,priority: emitter.EventPriority = emitter.EventPriority.HIGH) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}const options: emitter.Options = { priority };emitter.emit(eventId.toString(), options, { data: eventData });}/*** 订阅事件* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param callback 接收到该事件时需要执行的回调处理函数。*/static on<T>(eventId: string | number, callback: Callback<T>) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.on(eventId.toString(), (eventData: emitter.GenericEventData<T>) => {if (eventData.data) {callback(eventData.data); // 确保 data 不为 undefined} else {console.warn('Received undefined data for event:', eventId);}});}/*** 单次订阅指定事件* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param callback 接收到该事件时需要执行的回调处理函数。*/static once<T>(eventId: string | number, callback: Callback<T>) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.once(eventId.toString(), (eventData: emitter.GenericEventData<T>) => {if (eventData.data) {callback(eventData.data); // 确保 data 不为 undefined} else {console.warn('Received undefined data for event:', eventId);}});}/*** 取消事件订阅* @param eventId 事件ID,string类型的eventId不支持空字符串。*/static unsubscribe(eventId: string | number) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.off(eventId.toString());}/*** 获取指定事件的订阅数* @param eventId 事件ID,string类型的eventId不支持空字符串。* @returns 订阅数*/static getListenerCount(eventId: string | number): number {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}return emitter.getListenerCount(eventId.toString());}/*** 取消指定事件的特定回调* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param callback 要取消的回调函数。*/static off<T>(eventId: string | number, callback: Callback<emitter.GenericEventData<T>>) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.off(eventId.toString(), callback);}
}// 定义通用回调类型
type Callback<T> = (data: T) => void;代码如下:
import { emitter } from '@kit.BasicServicesKit';/*** TODO Emitter工具类(进行线程间通信)* author: 鸿蒙布道师* since: 2025/04/11*/
export class EmitterUtil {/*** 发送事件* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param eventData 发送的数据* @param priority 事件被发送的优先级,默认为 HIGH。*/static post<T>(eventId: string | number,eventData: T,priority: emitter.EventPriority = emitter.EventPriority.HIGH) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}const options: emitter.Options = { priority };emitter.emit(eventId.toString(), options, { data: eventData });}/*** 订阅事件* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param callback 接收到该事件时需要执行的回调处理函数。*/static on<T>(eventId: string | number, callback: Callback<T>) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.on(eventId.toString(), (eventData: emitter.GenericEventData<T>) => {if (eventData.data) {callback(eventData.data); // 确保 data 不为 undefined} else {console.warn('Received undefined data for event:', eventId);}});}/*** 单次订阅指定事件* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param callback 接收到该事件时需要执行的回调处理函数。*/static once<T>(eventId: string | number, callback: Callback<T>) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.once(eventId.toString(), (eventData: emitter.GenericEventData<T>) => {if (eventData.data) {callback(eventData.data); // 确保 data 不为 undefined} else {console.warn('Received undefined data for event:', eventId);}});}/*** 取消事件订阅* @param eventId 事件ID,string类型的eventId不支持空字符串。*/static unsubscribe(eventId: string | number) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.off(eventId.toString());}/*** 获取指定事件的订阅数* @param eventId 事件ID,string类型的eventId不支持空字符串。* @returns 订阅数*/static getListenerCount(eventId: string | number): number {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}return emitter.getListenerCount(eventId.toString());}/*** 取消指定事件的特定回调* @param eventId 事件ID,string类型的eventId不支持空字符串。* @param callback 要取消的回调函数。*/static off<T>(eventId: string | number, callback: Callback<emitter.GenericEventData<T>>) {if (!eventId || (typeof eventId === 'string' && !eventId.trim())) {throw new Error('Event ID cannot be empty or null.');}emitter.off(eventId.toString(), callback);}
}// 定义通用回调类型
type Callback<T> = (data: T) => void;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com