Rxjs 如果发出无效类型的变量,可观测对象是否有方法调用其错误回调?
如果主题以某种方式发出无效类型,我希望触发observers错误回调 通过检查返回值的真实值,有一种检查未定义值的变通方法,但这会使未定义值到达Rxjs 如果发出无效类型的变量,可观测对象是否有方法调用其错误回调?,rxjs,Rxjs,如果主题以某种方式发出无效类型,我希望触发observers错误回调 通过检查返回值的真实值,有一种检查未定义值的变通方法,但这会使未定义值到达下一个回调 public priceChange=新主题() 这个。价格变化。订阅({ 下一步:更改=>。。, 错误:err=>。。, }) 这个。价格变化。下一个(42) this.priceChange.next(未定义) 这个.priceChange.next('Potato')) 我只希望在下一个回调中调用有效值,即42。其他值应仅到达错误回调
下一个
回调
public priceChange=新主题()
这个。价格变化。订阅({
下一步:更改=>。。,
错误:err=>。。,
})
这个。价格变化。下一个(42)
this.priceChange.next(未定义)
这个.priceChange.next('Potato'))
我只希望在
下一个回调中调用有效值,即42。其他值应仅到达错误回调。您可以尝试根据此值来确定答案。阅读更多关于catchError的信息
你可以试着根据这个答案来回答。阅读更多关于catchError的信息
请检查管道操作员catchError
和throwError
请检查管道操作员catchError
和throwError
import { of } from 'rxjs';
import { map, catchError } from 'rxjs/operators';
this.priceChange.pipe(
map(change => {
if (typeof change !== WHATEVER YOU WANT) {
throw 'type is not valid ......!';
}
return change;
}),
catchError(err => {
throw 'error in source. Details: ' + err;
}),
)
.subscribe(
x => console.log(x),
err => console.log(err)
);