0
Observableの2つのケースでzip演算子はどのように機能しますか?私にとっては、それが完了すると、他の人に割り込む。私はボイド以外の場合、観測可能なものがすべて完了するのを待ってから、結果を返します。RxJava:zip演算子スレッド割り込みエラーvoid observable
コードが
Observable<Void> deleteImageObservable = deleteImage(order.getPrescriptionUrl())
.subscribeOn(Schedulers.io());
// deltes order image
// Deletes order without image
Observable<Void> deleteOrderObservable = Observable.create(subscriber -> {
App.getFirebase().child(Constants.Path.ORDERS).child(order.getOrderPath()).removeValue((firebaseError, firebase) -> {
if (firebaseError != null) {
// on order delete failed
Timber.e(firebaseError.toException(), "Order delete failed on id ", order.getOrderId());
subscriber.onError(firebaseError.toException());
} else {
Timber.i("Order deleted, key: %s", order.getOrderPath());
subscriber.onCompleted();
}
});
});
return Observable.zip(
deleteImageObservable,
deleteOrderObservable, (aVoid, aVoid2) -> {
return aVoid;
}
);
である私は)(cloudinaryアップローダーを使用しています。破壊()画像を削除するには、それ以外の例外/エラー成功の場合はvoidを返します。
これは直ちにfirebaseクエリを実行し、成功すると、イメージ削除observableを中断します。
これは正しい動作ですか?あるいは、私のコードにバグがありますか?
ありがとうございました。それは私が探している演算子です。あなたはいつジップを使うべきか、そうしないことをいつお勧めしますか? – Arka
zipは、行ごとに結合するデータがあるのに、継続手段としては機能しない場合に便利です。 – akarnokd