改造,观察和永无止境的代码

时间:2014-09-18 20:40:19

标签: retrofit rx-java

鉴于界面简单:

public interface Api {
    @Get("/{id}")
    Observable<Person> getPerson(@Path("id") String id);
}

和一个叫:

api.getPerson("me").toBlocking().single();

除了我的应用程序没有终止之外,一切都按预期工作。如果我订阅Observable并在完成而不是阻止时取消订阅并不重要,我的代码将不会终止。

要说清楚,这不是Android应用。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

我要去做“已经晚了”的辩护。

我只是将调用更改为在io调度程序上进行订阅,并在即时调度程序上进行观察,如下所示:

api.getPerson("me").subscribeOn(Schedulers.io()).observeOn(Schedulers.immediate()).toBlocking().single();

Simples。