0

我想减去 2 个可观察的数字

this.num1:Observable<number>
this.num2:Observable<number>
this.num3:Observable<number>

this.num1 = this.store.select(getNum1Count);
this.num2 = this.store.select(getNum2Count);
// this.num3 = difference of this.num1 and this.num2 

在 RXJS5 我正在执行以下命令

 this.num3 = Observable.combineLatest(this.num1,this.num2,(c1,c2)=> Math.abs(c1 - c2));

但在 RXJS6 中,combineLatest 已弃用:弃用,以支持静态 combineLatest ,如下所示

我们如何使它在 RXJS 6 中工作?

在尝试 combineLatest 的 RXJS6 格式时,

combineLatest(this.num3,this.num2, this.num1, (c1,c2) =>  Math.abs(c1 - c2 )),filter(x => x !== NaN);

我收到一个错误 算术运算的左侧必须是“任何”、“数字”或枚举类型。

4

1 回答 1

1

我能够在帮助下让它工作(通过 gitter @Dorus 和 @GuillaumeUnice )

this.num3 = this.num1.pipe(combineLatest(this.num2),map(([n1,n2]) =>  Math.abs(n1 - n2))); 

观察:作为开发人员,当一个简单的算术运算如此复杂时,这很奇怪。

于 2018-06-15T18:32:31.783 回答