У меня есть функция канала на моем наблюдаемом, где я изменяю значение ответа на пустой массив, если результат равен нулю или не определен.
obs.pipe(
map(res => {
// pipe and map function to return empty array if resource did not return result
return res ?? [];
})
);
я использую эту функцию в нескольких местах, и мне интересно, могу ли я создать какой-нибудь обработчик, чтобы мне не нужно было повторно использовать этот код.
Мои ожидания:
this.loadCountries().pipe(defaultEmptyArrayPipe)
Спасибо
вы можете добиться этого, обернув его функцией, которая получает наблюдаемое и возвращает наблюдаемое, например:
function defaultEmptyArrayPipe <T>(source$: Observable<T>): Observable<T> {
return source$.pipe(
map(res => {
return res ?? [];
})
)
}
затем назовите это, как вы хотели:
this.loadCountries().pipe(defaultEmptyArrayPipe)
Вы можете просто обернуть его трубой и сохранить для повторного использования.
const defaultEmptyArrayPipe = pipe(map(res => {
// pipe and map function to return empty array if resource did not return result
return res ?? [];
}))
this.loadCountries().pipe(defaultEmptyArrayPipe)