如何在条件下继续观察链

时间:2018-05-08 02:10:40

标签: angular typescript rxjs observable

假设我想在聊天应用程序中发送评论,但只有当某个变量为真(shouldSendMessage)时,使用Observables实现此目的的最佳方法是什么?

这很有效,但很难看:

Observable.of({})
  .takeWhile(() => this.state.alive)
  .flatMap(() => this.state.shouldSendMessage ? Observable.of({}) : Observable.empty())
  .flatMap(() => this.Chat.sendMessage(myMessage))
  .subscribe(x => {
    //Do something after message sent successfully
  });

我想做得更好的两条线是:

Observable.of({})

.flatMap(() => this.state.shouldSendMessage ? Observable.of({}) : Observable.empty())

注意:this.state.alive是这样的,不需要为订阅存储单独的变量并取消订阅

0 个答案:

没有答案