为什么 RxJs 管道过滤器允许非真实值通过?
Why is RxJs pipe filter allowing non true values through?
我正在学习 Rxjs observables 并试图找出为什么下面的过滤器没有按我预期的那样工作。
我的问题是以下设置,为什么即使 classA 的 var1 值不正确,.then() 块中的代码也会执行?过滤器函数不应该只允许通过的真值变成一个承诺,其余的都被丢弃吗?
Class A:
var1: boolean;
Class B:
var2$: observable<boolean> = of(classA.var1)
FilterObservableValue(){
this.var2$.pipe(
filter( x => x === true)
)
.toPromise()
.then(() => {
//Why is Code here executed when value of var2$ is false? Shouldn't filter function filter out non true values?
})
.catch(err => {
console.log(err);
});
}
过滤器运算符运行良好,问题出在 toPromise:
你必须知道这是 Promises 的自然行为。因此,即使它不会收到任何值,它也不会拒绝,并且会用 undefined value
来满足
我正在学习 Rxjs observables 并试图找出为什么下面的过滤器没有按我预期的那样工作。
我的问题是以下设置,为什么即使 classA 的 var1 值不正确,.then() 块中的代码也会执行?过滤器函数不应该只允许通过的真值变成一个承诺,其余的都被丢弃吗?
Class A:
var1: boolean;
Class B:
var2$: observable<boolean> = of(classA.var1)
FilterObservableValue(){
this.var2$.pipe(
filter( x => x === true)
)
.toPromise()
.then(() => {
//Why is Code here executed when value of var2$ is false? Shouldn't filter function filter out non true values?
})
.catch(err => {
console.log(err);
});
}
过滤器运算符运行良好,问题出在 toPromise:
你必须知道这是 Promises 的自然行为。因此,即使它不会收到任何值,它也不会拒绝,并且会用 undefined value
来满足