annotations-design-patterns
    Preparing search index...

    Function Emits

    • Tras ejecutar el método con éxito, emite event en el propio objeto (que debe extender Subject) con el valor de retorno como payload. Si el método lanza, no se emite nada. Si el método devuelve una Promise, el evento se emite con el valor resuelto; si la promesa rechaza, no se emite nada. En un Subject tipado, el nombre y el valor resuelto deben coincidir con el contrato de emit de la clase.

      Type Parameters

      • Event extends string

      Parameters

      Returns <This extends Subject<Record<string, unknown>>, Args extends unknown[], Return>(
          target: (this: This, ...args: Args) => Return,
          context: ClassMethodDecoratorContext<
              This,
              (this: This, ...args: Args) => Return,
          > & (
              This["emit"] extends (event: Event, payload: Awaited<Return>) => void
                  ? unknown
                  : never
          ),
      ) => (this: This, ...args: Args) => Return

      class UserService extends Subject<{ 'user:created': User }> {
      @Emits('user:created')
      create(name: string): User { ... }
      }