RxJava fromCallable 和取消订阅

我有以下代码(RxJava 1.3.8):


Scheduler scheduler = Schedulers.from(Executors.newSingleThreadExecutor());


Subscription subscription1 = Completable.fromCallable(() -> {

  Thread.sleep(1000);

  System.out.println("first Callable executed");

  return 0;

})

    .subscribeOn(scheduler)

    .subscribe();


Subscription subscription2 = Completable.fromCallable(() -> {

  Thread.sleep(1000);

  System.out.println("second Callable executed");

  return 0;

})

    .subscribeOn(scheduler)

    .subscribe();


CompositeSubscription subscriptions = new CompositeSubscription();

subscriptions.addAll(subscription1, subscription2);

subscriptions.clear();

输出:


第一个 Callable 执行


第二个 Callable 执行


问题是 - 为什么第二个 Callable 被执行?在它运行之前,如果取消订阅,我希望订阅检查并取消执行。


达令说
浏览 242回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java