假设我想在聊天应用程序中发送评论,但只有当某个变量为真(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
是这样的,不需要为订阅存储单独的变量并取消订阅