2014-09-18 32 views
0

改造,觀察到的,由於簡單的界面永無止境的代碼

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

,並像一個電話:

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

一切正常,除了我的應用程序不會終止。如果我完成訂閱Observable並取消訂閱而不是阻止,則無關緊要,我的代碼不會終止。

要清楚,這不是一個Android應用程序。

我哪裏錯了?

回答

1

我打算去「遲到」防禦。

我只是換了電話訂閱的IO調度和觀察眼前的調度,像這樣:

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

Simples。