web-dev-qa-db-fra.com

Rxjs - Plusieurs sources pour .withlatestfrom

Je veux fusionner les dernières valeurs émises de plusieurs observables, donc en ce moment j'utilise .withLatestFrom. Sauf qu'il imbrique les données ensemble dans des tableaux imbriqués au lieu de pousser les données dans une nouvelle valeur de tableau. Exemple de code ci-dessous.

Des idées sur la façon de récupérer plusieurs émissions observables à l'aide de .withLatestFrom?

.withLatestFrom(source1)
.withLatestFrom(source2)
.withLatestFrom(source3)
.map((data) => { console.log(data) });
17
Preda70R

withLatestFrom prend en charge plusieurs observables:

.withLatestFrom(source1, source2, source3)
.map((data) => { console.log(data) });

-> [val, value1, value2, value3]

Il prend également en charge la fonction comme son dernier paramètre, vous pouvez donc obtenir des valeurs autres que les tableaux:

observable$
    .withLatestFrom(source1, source2, (val, one, two) => {
        return {val: val, one: one, two: two};
     });
38
adharris

withLatestFrom accepte plusieurs observables. afin que vous puissiez l'écrire comme:

let obs1$ = Rx.Observable.of('a');
let obs2$ = Rx.Observable.of('b');

Rx.Observable.interval(1000)
  .withLatestFrom(obs1$, obs2$)
  .subscribe(x=>console.log(x))
3
Julia Passynkova