Я пытаюсь построить объект мета-потока Dynami c, который ожидает завершения некоторых потоков перед запуском - PullRequest
0 голосов
/ 25 февраля 2020

Проблема:

У меня много потоковых данных в сервисе. Когда кнопка нажата, все живые компоненты, которые в настоящее время подписаны на свои сервисные потоки, обновляют упомянутые потоки. Мне нужно перебрать все потоки в этом сервисе и создать объект json из потоков, которые не равны нулю.

Stream Service

masterSubmit$: BehaviorSubject<string> = new BehaviorSubject(null);
addForm$: BehaviorSubject<model> = new BehaviorSubject(null);
addSubForm$: BehaviorSubject<otherModel> = new BehaviorSubject(null);

RxJSOperatorThatEmitsAllStreamsAtSameTime(
masterSubmit$,
addForm$,
addSubForm$,
).subscribe((data) => {
  if(data[0] == null){
    return;
  }
  if(data[1] != null){
    jsonObject.properties = {data[1]}
  }
  etc..

  if(data[0] == 'postNewThingy'){
    this.apiStuff.postThingy(jsonObject);
  }
})

Это то, к чему я стремлюсь, любой совет будет фантастическим c! Спасибо!

1 Ответ

1 голос
/ 25 февраля 2020

Привет Вы можете использовать оператор combLatest RX JS для ожидания всех вызовов до конца sh

    combineLatest(masterSubmit$,
addForm$,
addSubForm$,).subscribe(
      ([masterSubmit, addForm, addSubForm]) => {

        console.log(
          `masterSubmit: ${masterSubmit},
         addForm: ${addForm},
         addSubForm: ${addSubForm}`
        );
      }
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...