Если я использую fromEventPattern, а в пользовательском API есть отдельный обработчик ошибок, как я могу выбросить их в поток через функцию-обработчик (NodeEventHandler)?
import { fromEventPattern } from 'rxjs';
const token = someAPI.registerEventHandler(function(event) {}, function(error) {}); // API takes a second function for errors.
someAPI.unregisterEventHandler(token);
const someAPIObservable = fromEventPattern(
function(handler) { return someAPI.registerEventHandler(handler, handler); }, // What should be the second argument here, in order to throw the error to any subscribers
function(handler, token) { someAPI.unregisterEventHandler(token); }
);
Я мог бы вызвать обработчик с ошибкой (как указано выше) и затем передать полученную наблюдаемую наблюдаемую информацию, возвращенную из fromEventPattern
, чтобы проверить тип, но он выглядит немного многословно:
pipe(
map((x: unknown) => {
if (x instanceof Error) throw x;
return x;
}),
subject
(который я пытаюсь заменить на fromEventPattern
) имеет определенный .error()
метод. Что позволит избежать всего ручного трубопровода и проверки типа.