@@ -2186,6 +2186,65 @@ public final static <T> Observable<T> mergeDelayError(Observable<? extends Obser
2186
2186
return source.lift(OperatorMerge.<T>instance(true, maxConcurrent));
2187
2187
}
2188
2188
2189
+ /**
2190
+ * Flattens an Iterable of Observables into one Observable, in a way that allows an Observer to receive all
2191
+ * successfully emitted items from each of the source Observables without being interrupted by an error
2192
+ * notification from one of them.
2193
+ * <p>
2194
+ * This behaves like {@link #merge(Observable)} except that if any of the merged Observables notify of an
2195
+ * error via {@link Observer#onError onError}, {@code mergeDelayError} will refrain from propagating that
2196
+ * error notification until all of the merged Observables have finished emitting items.
2197
+ * <p>
2198
+ * <img width="640" height="380" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/mergeDelayError.png" alt="">
2199
+ * <p>
2200
+ * Even if multiple merged Observables send {@code onError} notifications, {@code mergeDelayError} will only
2201
+ * invoke the {@code onError} method of its Observers once.
2202
+ * <dl>
2203
+ * <dt><b>Scheduler:</b></dt>
2204
+ * <dd>{@code mergeDelayError} does not operate by default on a particular {@link Scheduler}.</dd>
2205
+ * </dl>
2206
+ *
2207
+ * @param sequences
2208
+ * the Iterable of Observables
2209
+ * @return an Observable that emits items that are the result of flattening the items emitted by the
2210
+ * Observables in the Iterable
2211
+ * @see <a href="http://reactivex.io/documentation/operators/merge.html">ReactiveX operators documentation: Merge</a>
2212
+ */
2213
+ public static <T> Observable<T> mergeDelayError(Iterable<? extends Observable<? extends T>> sequences) {
2214
+ return mergeDelayError(from(sequences));
2215
+ }
2216
+
2217
+ /**
2218
+ * Flattens an Iterable of Observables into one Observable, in a way that allows an Observer to receive all
2219
+ * successfully emitted items from each of the source Observables without being interrupted by an error
2220
+ * notification from one of them, while limiting the number of concurrent subscriptions to these Observables.
2221
+ * <p>
2222
+ * This behaves like {@link #merge(Observable)} except that if any of the merged Observables notify of an
2223
+ * error via {@link Observer#onError onError}, {@code mergeDelayError} will refrain from propagating that
2224
+ * error notification until all of the merged Observables have finished emitting items.
2225
+ * <p>
2226
+ * <img width="640" height="380" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/mergeDelayError.png" alt="">
2227
+ * <p>
2228
+ * Even if multiple merged Observables send {@code onError} notifications, {@code mergeDelayError} will only
2229
+ * invoke the {@code onError} method of its Observers once.
2230
+ * <dl>
2231
+ * <dt><b>Scheduler:</b></dt>
2232
+ * <dd>{@code mergeDelayError} does not operate by default on a particular {@link Scheduler}.</dd>
2233
+ * </dl>
2234
+ *
2235
+ * @param sequences
2236
+ * the Iterable of Observables
2237
+ * @param maxConcurrent
2238
+ * the maximum number of Observables that may be subscribed to concurrently
2239
+ * @return an Observable that emits items that are the result of flattening the items emitted by the
2240
+ * Observables in the Iterable
2241
+ * @see <a href="http://reactivex.io/documentation/operators/merge.html">ReactiveX operators documentation: Merge</a>
2242
+ */
2243
+ public static <T> Observable<T> mergeDelayError(Iterable<? extends Observable<? extends T>> sequences, int maxConcurrent) {
2244
+ return mergeDelayError(from(sequences), maxConcurrent);
2245
+ }
2246
+
2247
+
2189
2248
/**
2190
2249
* Flattens two Observables into one Observable, in a way that allows an Observer to receive all
2191
2250
* successfully emitted items from each of the source Observables without being interrupted by an error
0 commit comments