Que se passe-t-il avec l'appel concat
? Je sais que si je remplace concat
par merge
le code fonctionne correctement et la sortie est foo
bar
qux
quux
. J'ai lu sur les observables Hot et Cold, et je sais que pour les observables chauds qui pourraient arriver si les valeurs sont générées avant l'abonnement, mais mes observables là-bas sont cold, donc je suppose que ce n'est pas le cas.RxJS observable concat ne fonctionne pas
const Rx = require('rxjs');
const observable1 = Rx.Observable.create((observer) => {
observer.next('foo');
observer.next('bar');
return observer;
});
const observable2 = Rx.Observable.create((observer) => {
observer.next('qux');
observer.next('quux');
return observer;
});
const result1 = observable1.concat(observable2);
result1.subscribe((x) => console.log(x));
// outputs
foo
bar
https://codepen.io/thiagoh/pen/WZyrRL
Merci. Avez-vous une source pour confirmer/expliquer pourquoi cela est nécessaire? – thiagoh
@thiagoh c'est un comportement normal de la méthode 'concat()'. 'Abonnez-vous aux observables dans l'ordre que ** précédent complète **, émettre des valeurs.' - https://www.learnrxjs.io/operators/combination/concat.html –
Les diagrammes de marbre sont également une bonne aide visuelle [Concat ] (http://reactivex.io/documentation/operators/concat.html) –