Как вычесть 2 наблюдаемые в RXJS 6 - PullRequest
0 голосов
/ 12 июня 2018

Я хочу вычесть 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 объединяющий элемент не рекомендуется: устарел в пользу статического комбинатаПоследний, как показано здесь

Как нам заставить это работать в RXJS 6?

При попытке использовать формат RXJS6 для combinLatest,

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

Iполучить ошибку Левая часть арифметической операции должна иметь тип 'any', 'number' или тип enum.

1 Ответ

0 голосов
/ 15 июня 2018

Мне удалось заставить его работать с помощью (через gitter @Dorus и @GuillaumeUnice)

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

Замечание: как разработчик странно, когда простая арифметическая операция настолько сложна.

...