【发布时间】:2018-10-08 08:44:08
【问题描述】:
我正在使用 RxJava 2 进行 API 调用。 我必须打电话取消课程的预订。
但我必须先打一个电话才能获得丢失的信息。
是这样的:
if classId not exists
get classId
then unbook class
else
unbook class
我不想重复取消预订课程代码。
这里是简化的代码:
FitnessDataService service = RetrofitInstance.getRetrofitInstance().create(FitnessDataService.class);
// if we don't have the aid of class (reserved), we get it from the reserved classes
if (fitClass.getAid() == null) {
service.getReservedClasses(FitHelper.clientId)
.flatMap(reservedClasses ->
{
// get the class ID from reserved classes
...
return service.unbookClass(fitClass.getAid());
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
// success
}, err ->
// error
} else {
service.unbookClass(fitClass.getAid())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
// success
}, err ->
// error
}
如您所见,service.unbookClass 是重复的。 如果我没有类 ID(fitClass.getAid() == null),我如何始终调用这个 service.unbookClass 并且只调用 service.getReservedClasses 无需将代码重复到第二次调用。
【问题讨论】:
标签: java android retrofit rx-java2