• wather.js 封装


    /** @format */
    /* eslint-disable @typescript-eslint/no-explicit-any */
    /* eslint-disable @typescript-eslint/explicit-module-boundary-types */

    // 观察者
    class Watcher {
        public list: any;
        constructor() {
          this.list = {};
        }
        // 订阅
        public $on(key: string, fn: any): void {
          if (!this.list[key]) {
            this.list[key] = [];
          }
          this.list[key].push(fn);
        }
        // 发布
        public $emit(key: string, param?: any): void | boolean {
          const fns = this.list[key];
          // 检测是否有注册  注册后是否有注入方法
          if (!fns || fns.length === 0) {
            return false;
          }
          // 依次执行 并传入参数
          fns.forEach((fn: any) => {
            fn(param);
          });
        }
        // 清空
        public $clear(key: string) {
          this.list[key] = [];
        }
        public $clearAll() {
          this.list = {};
        }
      }
      
      export default new Watcher();  
  • 相关阅读:
    3503: [Cqoi2014]和谐矩阵
    2734: [HNOI2012]集合选数
    P3900 [湖南集训]图样图森破
    4557: [JLoi2016]侦察守卫
    牛客OI周赛6-提高组 B 践踏
    连续区间的最大公约数
    Wannafly挑战赛5 D. 子序列
    牛客国庆集训派对Day1 B. Attack on Titan
    4538: [Hnoi2016]网络
    [SHOI2015]超能粒子炮·改
  • 原文地址:https://www.cnblogs.com/wenqylh/p/14964946.html
Copyright © 2020-2023  润新知