# 介绍

事件是开发过程中经常使用到的功能,我们经常利用它来做一些解耦的操作。如:更新了用户信息,其他需要更新相关信息的操作自行监听更新等

# 新建监听

import { Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
import { CoolEvent, Event } from 'midwayjs-cool-core';

/**
 * 接收事件
 */
@Provide()
@Scope(ScopeEnum.Singleton)
@CoolEvent()
export class DemoEvent {
  /**
   * 根据事件名接收事件
   * @param msg
   * @param a
   */
  @Event('updateUser')
  async updateUser(msg, a) {
    console.log('ImEvent', 'updateUser', msg, a);
  }
}

# 发送事件

import { Get, Inject, Provide } from '@midwayjs/decorator';
import {
  CoolController,
  BaseController,
  CoolEventManager,
} from 'midwayjs-cool-core';

/**
 * 事件
 */
@Provide()
@CoolController()
export class DemoEventController extends BaseController {
  @Inject('cool:coolEventManager')
  coolEventManager: CoolEventManager;

  /**
   * 发送事件
   */
  @Get('/send')
  public async send() {
    this.coolEventManager.emit('updateUser', { a: 1 }, 12);
  }
}