Как я могу заставить RxJ обрабатывать мою наблюдаемую, когда предыдущая наблюдаемая сделана? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь запустить observables в последовательности (когда firstObservableStream будет сделано, затем иметь дело с secondObservableStream).В этой сыворотке я пытаюсь подражать некоторым асинхронным вещам.Например, delete-old-image -> загрузить новое изображение ---> подписаться на вывод и т. Д.

У меня есть короткий пример кода:

import { Observable, of } from 'rxjs';
import { merge, concat } from 'rxjs/operators';

const emmit$ = Observable.create(function(observer) {
  setTimeout( ()=> observer.next('emmit #1'), 40);
  setTimeout( ()=> observer.next('emmit #2'), 5000);
});

const process$ = Observable.create(function(observer) {
  setTimeout( ()=> observer.next('process #1'), 2500);
  setTimeout( ()=> observer.next('process #2'), 400);
});

const combined$ =  emmit$.pipe(concat(process$));
combined$.subscribe( (val) =>{
  console.log(val);
});

Что я ожидаю каквывод: emmit # 1 -> emmit # 2 -> процесс # 1 -> процесс # 2

И реальный вывод: emmit # 1 -> emmit # 2

Например, если $ process вообще не участвует в последовательности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...