新しく追加される予定のrx.Completableの紹介記事です。
TL;DR
- 1.1.1で入る予定。(最新は1.1.0)
-
@Experimental
な機能なので、method名や仕様が変わる可能性がある。 - Coldなやつで、
Single<Void>
に近いがonNext
はない。 - POST処理とかの際にObservable/Singleの代わりに使うと便利かも。
PullRequest
(2.xの方は実装に難有りでまだmergeされてないです。)
詳細はPRを見て下さい。 議論の内容をざっくりまとめると、
- "なにかの処理"の成功/失敗だけを伝えたい時はあるじゃん。(別に値を渡したくはない)
-
Single<Void>
だとonNext(null)
みたいなnull渡しがあるのがイヤ。 - 2.x系はReactive-Streamsの仕様に準拠するのでnull渡しを禁止したい。
みたいな事がトピックでした。
使いみちあるの?
僕はいまいちピンとこなかったんですが、twitterで呟いたら「POSTした時とか、あると便利かもね」という話になりました。使い道ないけどレスポンス渡したり、null渡しすることは今までもあったので、そういう時にCompletableは便利かもしれないですね。(Completable追ってたら2.x系気になったので空いてる日にまた書きたいな。。)
https://twitter.com/__gfx__/status/674089343116435456
http://twitter.com/sys1yagi/status/676658911932362752
関連記事
実装した本人が熱い思いをブログに書いています。内部実装の話がほとんどで、backpressureいらないから実装がシンプルになるよね!! 最高!! みたいなこと言ってた気がします。
リリースされたら使ってみたいですね。