Javascript RxJS 6-平面映射条件

Javascript RxJS 6-平面映射条件,javascript,flatmap,rxjs6,Javascript,Flatmap,Rxjs6,我有一个表单,可以在后端创建一个项目,还可以选择另一个资源,这取决于用户是否选中复选框。只有在创建第一个资源之后,才能创建第二个资源。我已经想出了这段代码,但我认为这不是正确的方法,尤其是复选框没有被选中的部分,我必须返回一个无意义的可观察值。有什么帮助吗 this.myService.createArticle(article) .flatMap(_ => { if (this.checkbox) { return this.mailer.createOtherR

我有一个表单,可以在后端创建一个项目,还可以选择另一个资源,这取决于用户是否选中复选框。只有在创建第一个资源之后,才能创建第二个资源。我已经想出了这段代码,但我认为这不是正确的方法,尤其是复选框没有被选中的部分,我必须返回一个无意义的可观察值。有什么帮助吗

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

我还尝试返回一个EmptyObservable,但它不起作用。

即使这个问题是的重复,由于RxJS版本的不同,也存在一些差异。在RxJS 6中,此操作与此类似:

this.myService.createArticle(article)
  .pipe(
    filter(() => this.checkbox),
    flatMap(() => return this.mailer.createOtherResource(data)),
  });

这看起来很相似:虽然它是rxjs2,但也应该适用于rxjs6。很抱歉回答得太晚了!是的,你说得对,
filter()
takeWhile()
就是我要找的。干杯如果未使用下划线参数,为什么要添加下划线参数,可能会重复?