Подписаться Angular 6 - PullRequest
       7

Подписаться Angular 6

0 голосов
/ 04 сентября 2018
toppings : Array
toppings2 : Array

У меня есть 2 способа подписки:

this.toppings.valueChanges.subscribe(val=> { 
console.log(val);
}

this.toppings2.valueChanges.subscribe(val2=> { 
console.log(val2);
}

Я хочу использовать val и val2 в одной и той же функции. Как я могу получить val и val2 в одном месте? (или val3 = val + val2)

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

zip объединяет две наблюдаемые и ждет, когда они обе излучат. CombatLatest будет делать то же самое, это не имеет большого значения тебе нужно,

zip(this.toppings.valueChanges, this.toppings2.valueChanges).subscribe(val => console.log(val[0] + val[1]))
0 голосов
/ 04 сентября 2018

объединитьПоследний даст вам последнюю версию как начинки, так и начинки2.

https://www.learnrxjs.io/operators/combination/combinelatest.html

Мраморная диаграмма: http://rxmarbles.com/#combineLatest

Пример:

import {combineLatest} from 'rxjs';

combineLatest(this.toppings.valueChanges, this.toppings2.valueChanges )
                          .subscribe( ([topping1val, topping2val]) => {
                                      let topping3 = topping1val + topping2val;
                                 });
...