我有2种REST请求方法; getA()
和getB()
。两者都是使用call.enqueue()
的异步调用。
在获得getB()
的结果之前,我无法致电getA()
。
在onCreateView()
中,我将依次调用getA()
和getB()
。但是,getB()
可能会失败,因为它还没有getA()
的结果。解决此问题的一种方法是,我可以在getB()
内调用getA()
,但我认为这不是干净的编码。
有没有办法等到getA()
的请求完成后再在getB()
中调用onCreateView()
?
答案 0 :(得分:1)
答案 1 :(得分:0)
在getB()
回调改进提供的范围内调用onResponse
call.enqueue(new Callback<Thing>() {
@Override
public void onResponse(Call<Thing> call, Response<Thing> response) {
if (response.isSuccessful) {
callB();
}
}
@Override
public void onFailure(Call<Thing> call, Throwable t) {
// handle failure
}
});
上面的方法行得通,但是,我强烈建议使用RxJava进行改型处理Api调用。