RxJS 6 - состояние плоской карты

У меня есть форма, которая создает элемент в бэкэнде и, возможно, другой ресурс в зависимости от того, устанавливает ли пользователь флажок. Второй ресурс должен быть создан только после создания первого. Я придумал этот код, но я не думаю, что это правильный способ сделать это, особенно часть, где флажок не установлен, и я должен вернуть бессмысленный Observable. Любая помощь?

this.myService.createArticle(article)
  .flatMap(_ => {
    if (this.checkbox) {
      return this.mailer.createOtherResource(data);
    } else {
      return Observable.of('done');
    }
  });

Я также пытался вернуть EmptyObservable, но это не сработало.


person Pizzicato    schedule 11.07.2018    source источник
comment
Это выглядит примерно так: stackoverflow.com/questions/42705511/ Хотя это rxjs2, он также должен быть применим к rxjs6   -  person Capricorn    schedule 11.07.2018
comment
Извините за столь поздний ответ! Да, вы правы, я искал filter() или takeWhile(). Ваше здоровье!   -  person Pizzicato    schedule 19.07.2018
comment
Возможный дубликат Как условно использовать оператор "flatmap" ? (Угловой 2/rxjs)   -  person Pizzicato    schedule 19.07.2018


Ответы (1)


Даже если этот вопрос является дубликатом этот вопрос, есть некоторые отличия из-за версии RxJS. В RxJS 6 это будет сделано примерно так:

this.myService.createArticle(article)
  .pipe(
    filter(() => this.checkbox),
    flatMap(() => return this.mailer.createOtherResource(data)),
  });
person Pizzicato    schedule 19.07.2018
comment
Зачем добавлять параметр подчеркивания, если он не используется? - person cnexans; 19.07.2018