私は、各api呼び出しでpost要求のために本文として送られるオブジェクトのリストを持っています。すべての投稿要求は並行して実行する必要があります。それぞれの要求に対して、成功または失敗のいずれかを通知し、すべての投稿要求が完了したら通知する必要があります。これをrxjavaを使って実現する方法RxJavaを使った複数のアンドロイドapiコール
このコードを実行してください。これは実装ですか?
FlashSaleRetrofitService retrofitService = flashSaleProvider.createRetrofitService();
FlashSale runningFlashSale = JumkeyApplication.getRunningFlashSale();
List<Observable<Response<ClaimWrapper>>> wrapperResponseList = new ArrayList<>();
for (final CartProduct cartProduct : cartProducts) {
final Claim claim = new Claim();
Customer customer = customerDataProvider.getCustomer();
claim.setCustomerId(String.valueOf(customer.getId()));
claim.setEmail(customer.getEmail());
claim.setMobileNumber(customer.getDefaultAddress().getPhone());
claim.setProductId(Long.parseLong(cartProduct.getProductId()));
claim.setVariantId(Long.parseLong(cartProduct.getVariantId()));
claim.setQuantity(cartProduct.getQuantity());
claim.setSaleId(runningFlashSale.getSaleId());
wrapperResponseList.add(retrofitService.claimProduct(claim));
}
Observable.zip(wrapperResponseList, new FuncN<List<Claim>>() {
@Override
public List<Claim> call(Object... args) {
return null;
}
}).subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(new Action1<List<Claim>>() {
@Override
public void call(List<Claim> claims) {
}
})
.compose(new Observable.Transformer<List<Claim>, Claim>() {
@Override
public Observable<Claim> call(Observable<List<Claim>> listObservable) {
return null;
}
})
.subscribe(new Observer<Claim>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Claim claim) {
}
});
これが正しい方法でない場合は、上記の問題を解決する方法を教えてください。
一つ一つを処理したい場合はありがとう、私はドキュメントに支援するため –