有時我想觸發Runnable
作爲我的Observable
序列的一部分,但Runnable
不報告進度。如何從Runnable創建Observable?
我寫了一個簡單的工廠用於包裝Runnable
對象爲Observable
:
public static <T> Observable<T> fromRunnable(final Runnable action) {
if (action == null) {
throw new NullPointerException("action");
}
return Observable.fromPublisher(subscriber -> {
try {
action.run();
subscriber.onComplete();
} catch (final Throwable throwable) {
subscriber.onError(throwable);
}
});
}
用法:
Observable.concat(
someTask,
MoreObservables.fromRunnable(() -> {
System.out.println("Done. ");
}));
但是否RxJava 2已經提供了這個功能?
有沒有捕捉任何'Throwable'的'Runnable'可能會引發另一種選擇? – sdgfsdh
我已更新答案。 –