【发布时间】:2019-10-09 19:22:43
【问题描述】:
想想这个 func1() 在另一个 java 类中,你可以通过回调到达它。我的问题是我想等待 func1 结果。我该怎么做?
launch{
func1()
func2()
func3()
// I want to catch the data here, so it should wait here but because of using rxjava (another thread), I cannot control it.
// I know if I use new retrofit libs, I can use coroutines, but right now, I cannot change old ones.
//My problem is I want to wait the func1 result here. How can I do that?
}
suspend fun func2(){}
suspend fun func3(){}
//Another java class
public Single<MyData> func1(){
apiClient.getMyData()
.subscribe(myData -> {
// Let's say this takes 5 seconds to get the data
}, throwable -> {
});
}
【问题讨论】:
-
如果
func1返回Single你可以调用blockingGet等待它完成
标签: android multithreading kotlin rx-java2 kotlin-coroutines