Скажите, что я хочу отправить комментарий в приложении чата, но только если некоторая переменная имеет значение true (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
так, что отдельная переменная не должна быть сохранена для подписки и отписаться на