如果过滤谓词返回false,则处理通量

时间:2019-05-30 11:52:52

标签: java reactive-programming

一旦谓词失败,将过滤器添加到助焊剂中,便会将助焊剂处理掉。

如果没有应用过滤器,它将一直持续到结束

Flux<String> f = Flux.<String>create(emitter -> {
  FluxSink<String> e = emitter;

  Thread t = new Thread(()-> {
    for(int i =0 ; i< 10; i++)
    {
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e1) {}
      e.next(String.valueOf(i));
    }
 });

 emitter.onRequest(v -> t.start());

 emitter.onDispose(() -> t.interrupt());

 });
 f.filter(s -> Integer.valueOf(s) % 3 == 0).subscribe(System.out::println);

我期望的是打印0、3、6、9。但是它只打印0,并且当过滤谓词在“ 1”上失败时,将处理通量。

我犯了什么错误?有没有其他方法可以实现我的预期行为

0 个答案:

没有答案