79152155

Date: 2024-11-03 06:20:03
Score: 0.5
Natty:
Report link

For example, In controller emit the event in your post method

    ...
    import { Observable, fromEvent, map } from 'rxjs';
    import { EventEmitter2, OnEvent } from '@nestjs/event-emitter'; 

    @Controller('users')
    export class UsersController {
      constructor(
        private readonly usersService: UsersService,
        private eventEmitter: EventEmitter2,
      ) { }
    
      @Post()
      @ApiOkResponse({ type: UserEntity })
      async create(@Body() createUserDto: CreateUserDto) {
        const user = await this.usersService.create(createUserDto);
        this.eventEmitter.emit('user-create', user);
        return user;
      }
    
      @OnEvent('user-create')
      @Sse('create-user')
      sse(): Observable<MessageEvent> {
        try {
          return fromEvent(this.eventEmitter, 'employee-create').pipe(
            map((data) => {
              return new MessageEvent('employee-create', { data: data } as MessageEvent);
            }),
          );
        } catch (e) {
          console.log('error', e);
        }
      }
    }
  1. Use @OnEvent('employee-create') decorator on @Sse method
  2. Use fromEvent method method capture the emit and data
  3. imports
Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • User mentioned (1): @Sse
  • Low reputation (1):
Posted by: Naga