Choisir de manière conditionnelle observable dans RxJS

Je voudrais savoir comment créer un nouvel observable qui renverra l'un des deux autres observables en fonction de si le premier observable est vide (sans appeler le second observable par défaut). Par exemple:

// scenario 1 let obs1 = Observable.empty(); let obs2 = Observable.of([1,2,3]); // This line doesn't work, but is essentially what I'm attempting to do let obs3 = (obs1.isEmpty()) ? obs2 : obs1; obs3.subscribe( i => console.log('Next: ', i)); // Next: 1 // Next: 2 // Next: 3 // Complete // scenario 2 let obs1 = Observable.of([6,7,8]); let obs2 = Observable.of([1,2,3]); // This line doesn't work, but is essentially what I'm attempting to do let obs3 = (obs1.isEmpty()) ? obs2 : obs1; obs3.subscribe( i => console.log('Next: ', i)); // Next: 6 // Next: 7 // Next: 8 // Complete 

Tu pourrais essayer :

 let obs3 = obs1.isEmpty().map(x => x? obs2 : obs1;) 

Vérifie rapidement maintenant si cela fonctionnerait.

Oui, selon le document , il devrait être bon, comme isEmpty cas. isEmpty émet un booléen qui est vrai si l'observable est vide, afin que vous puissiez l'utiliser pour récupérer l'observable souhaité.