Ошибка потока в Nest
Источник данных может сломаться ещё до того, как клиент получит хотя бы одно событие. Молчаливый обрыв соединения оставляет вкладку без объяснения, а сервер должен сообщить о сбое явно.
Наблюдаемая последовательность
может перейти в состояние ошибки
через throwError из RxJS.
Nest прекращает подписку, закрывает
ответ потока и передаёт сбой
в общую обработку исключений
приложения на NodeJS.
Покажем на примере постов:
import { Controller, MessageEvent, Sse } from '@nestjs/common';
import { Observable, throwError } from 'rxjs';
@Controller('posts')
export class PostController {
@Sse('stream')
streamFail(): Observable<MessageEvent> {
return throwError(
() => new Error('Post stream failed'),
);
}
}
Настройте в WorkerController
поток, который сразу переходит
в ошибку с текстом про список
работников, чтобы клиент получил
отказ, а не серию событий.