为什么?
merge
之后操作员未停止
obs2
未完成?我正在看这本书的图表
"Reactive Programming on Android with RxJava"
从我的观点来看,如果任何合并的观测值
onCompleted
,则另一个可观察对象也终止(完成)。
但事实并非如此。为什么呢?
这是我的密码。obs1应该在obs2之后终止,但是它是无止境的
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.btn);
Observable.merge(obs1, obs2)
.subscribe(data -> Log.d(TAG, String.valueOf(data)));
}
Observable<String> obs1 = Observable.interval(1, TimeUnit.SECONDS)
.map(data -> "obs1: " + data);
Observable obs2 =
Observable.just(1, 2, 3, 4, 5)
.delay(1, TimeUnit.SECONDS)
.filter(data -> data < 5)
.map(data -> "obs2: " + data)
.doOnComplete(() -> Log.d(TAG, "done"));
D/MainActivity: obs1: 0
obs2: 1
obs2: 2
obs2: 3
D/MainActivity: obs2: 4
done
D/MainActivity: obs1: 1
D/MainActivity: obs1: 2
D/MainActivity: obs1: 3
D/MainActivity: obs1: 4
D/MainActivity: obs1: 5
D/MainActivity: obs1: 6