是否有反应性的惯用方法来执行以下操作:
cat /sys/test/list.txt | cut -d "=" -f2 | awk '{print $1}'| sed 's/"//g'
也就是说:调用obs.onNext,当它完成时,再次使用新的事件对象调用obs.onNext。
答案 0 :(得分:1)
首先,Observable
工作不同。它可以发出任意数量的事件(传递给Subscriber
&#39} onNext
),只发出一个onCompleted
事件。一旦发送onCompleted,Observable
结束,因此无法再发出任何事件。
没有什么可以阻止您创建指定的Observable
:
Observable.create((subscriber) -> {
if (!subscriber.isUnsubscribed()) {
return;
}
subscriber.onNext("FOO");
subscriber.onNext("BAR");
subscriber.onCompleted();
});
在这种情况下,一旦被包围,就会发出两个事件并完成它的工作。
如果您想动态地向Observable
添加活动,我建议PublishSubject
。例如:
PublishSubject<String> publishSubject = PublishSubject.create();
publishSubject.subscribe(o -> {
//Do whatever you want with o of type String
});
publishSubject.onNext("FOO");
publishSubject.onNext("BAR");
publishSubject.onCompleted();