zip rxjava 运算符无法解析方法订阅
zip rxjava operator cannot resolve method subscribe
我想通过网络发送多个请求,这 tutorial
有帮助,但我被困在后半部分。
似乎我应该 return 来自 onSubscribe,onNext,... 的值 (OrderValues)
因为应用函数 returns 一个值。但是....,onNext return默认无效。
有什么帮助吗?这是我的一段代码
Observable<Restaurant> orderRestaurant= IdentityClient.getAPIService()
.getRestaurantById(restaurantId)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<Menu> orderMenu= IdentityClient.getAPIService()
.getMenuById(menuId)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<User> orderUser= IdentityClient.getAPIService()
.getUserById(userId)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<OrderValues> combineValues=Observable.zip(orderRestaurant,
orderMenu, orderUser,
new Function3<Restaurant, Menu, User, OrderValues>() {
@Override
public OrderValues apply(Restaurant restaurant, Menu menu, User user)
throws Exception {
return new OrderValues(restaurant,menu,user);
}
I get an error here "cannot resolve method 'subscribe anonymous
org.reactivestreams.Subscriber(....OrderValues)
}).subscribe(new Subscriber<OrderValues>() {
@Override
public void onSubscribe(Subscription s) {
}
@Override
public void onNext(OrderValues orderValues) {
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
});
我假设您使用的是 RxJava 2。
使用 Observer
而不是 Subscriber
。也不要将结果分配给一个新的 Observable(你称之为 combineValues)。
private void myMethod() {
Observable.zip(orderRestaurant, orderMenu, orderUser, new Function3<Restaurant, Menu, User, OrderValues>() {
@Override
public OrderValues apply(@NonNull Restaurant restaurant, @NonNull Menu menu, @NonNull User user) throws Exception {
return new OrderValues(restaurant, menu, user);
}
}).subscribe(new Observer<OrderValues>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(OrderValues orderValues) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}
我想通过网络发送多个请求,这 tutorial 有帮助,但我被困在后半部分。 似乎我应该 return 来自 onSubscribe,onNext,... 的值 (OrderValues) 因为应用函数 returns 一个值。但是....,onNext return默认无效。 有什么帮助吗?这是我的一段代码
Observable<Restaurant> orderRestaurant= IdentityClient.getAPIService()
.getRestaurantById(restaurantId)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<Menu> orderMenu= IdentityClient.getAPIService()
.getMenuById(menuId)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<User> orderUser= IdentityClient.getAPIService()
.getUserById(userId)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<OrderValues> combineValues=Observable.zip(orderRestaurant,
orderMenu, orderUser,
new Function3<Restaurant, Menu, User, OrderValues>() {
@Override
public OrderValues apply(Restaurant restaurant, Menu menu, User user)
throws Exception {
return new OrderValues(restaurant,menu,user);
}
I get an error here "cannot resolve method 'subscribe anonymous
org.reactivestreams.Subscriber(....OrderValues)
}).subscribe(new Subscriber<OrderValues>() {
@Override
public void onSubscribe(Subscription s) {
}
@Override
public void onNext(OrderValues orderValues) {
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
});
我假设您使用的是 RxJava 2。
使用 Observer
而不是 Subscriber
。也不要将结果分配给一个新的 Observable(你称之为 combineValues)。
private void myMethod() {
Observable.zip(orderRestaurant, orderMenu, orderUser, new Function3<Restaurant, Menu, User, OrderValues>() {
@Override
public OrderValues apply(@NonNull Restaurant restaurant, @NonNull Menu menu, @NonNull User user) throws Exception {
return new OrderValues(restaurant, menu, user);
}
}).subscribe(new Observer<OrderValues>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(OrderValues orderValues) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}