自定义可观察管道函数
Custom observable pipe function
我在我的可观察对象上有一个管道函数,如果结果为空或未定义,我将响应值更改为空数组。
obs.pipe(
map(res => {
// pipe and map function to return empty array if resource did not return result
return res ?? [];
})
);
我在多个地方使用这个功能,我想知道我是否可以创建一些处理程序,这样我就不需要重用这个代码。
我的期望:
this.loadCountries().pipe(defaultEmptyArrayPipe)
谢谢
你可以通过用函数包装它来实现它,接收 observable 和 returns 一个 observable 例如:
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)
我在我的可观察对象上有一个管道函数,如果结果为空或未定义,我将响应值更改为空数组。
obs.pipe(
map(res => {
// pipe and map function to return empty array if resource did not return result
return res ?? [];
})
);
我在多个地方使用这个功能,我想知道我是否可以创建一些处理程序,这样我就不需要重用这个代码。
我的期望:
this.loadCountries().pipe(defaultEmptyArrayPipe)
谢谢
你可以通过用函数包装它来实现它,接收 observable 和 returns 一个 observable 例如:
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)