2017-04-11 10 views
0

ネットワーク経由で複数のリクエストを送信したい場合はtutorial が助けられましたが、 私は、onSubscribe、onNext、.... から値(OrderValues)を返すことが期待されているようですが、apply関数は値を返すためです。しかし....、onNextはデフォルトでvoidを返します。 すべてのヘルプは?ここで私はあなたがRxJava 2.zip rxjavaオペレータがメソッドのサブスクライブを解決できません

利用Observer代わりのSubscriberを使用していることを仮定してい

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() { 

    } 
    }); 

Error displayed

+0

エラーメッセージでスクリーンショットを提供できますか? – Gaket

+0

こんにちは@ガーネット。投稿は編集してください –

答えて

1

コードの私の作品です。また、新しい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() { 

       } 
      }); 
     } 
    } 
+1

あなたが行ったようにObservableを作成することはできません。 Observable.zip()を実行しようとすると、インテリジェンスは.zipに表示されず、メソッドzipを解決できません。 –

+0

どういう意味ですか? – GVillani82

+0

メソッド内でそのコードを実行していますか? – GVillani82

関連する問題