【发布时间】:2019-10-25 02:18:35
【问题描述】:
我已经尝试了解 rxJava Observable 超过一天了,但我就是不知道我的案例需要什么。我想是因为我没有创建一个 Observable,而只是从 API 调用中返回一个,我需要 Observable 类型的类,所以我可以使用该类的对象属性。
这是我的代码,但是当我运行打印语句时会完全跳过。如何使用封装在 Observer 中的对象属性?
// Define woman friend by creating their own large person group person.
// Returns an Observable<Person>.
rx.Observable<Person> personW = client.largePersonGroupPersons()
.createAsync(largePersonGroupId, new CreateLargePersonGroupPersonsOptionalParameter().withName("Woman"));
System.out.println("Creating Large Person Group Person called ");
personW.subscribe(response -> System.out.print(response.name()));
【问题讨论】:
-
如果调用真的是异步的,你需要一种方法来等待
print被调用。例如,在 main 方法中休眠。也不要忽略 onError 回调,因为您实际上可能会收到错误而不是响应。 -
我还在调试中查找了该方法,它实际上返回了一个 Observable.OnSubscribe 接口,它只有一个函数 Call()。那会有什么不同吗?另外,我在 try/catch 中确实有更大的方法,它和 onError() 一样好吗?
-
哪种方法? try-catch 也不适用于异步序列。
-
原来我可以通过电子邮件发送 SDK 的 PM,他建议使用
.toBlocking().single(),效果非常好。我猜这是一个异步功能,该方法没有及时完成打印语句。
标签: java observable rx-java2