一旦谓词失败,将过滤器添加到助焊剂中,便会将助焊剂处理掉。
如果没有应用过滤器,它将一直持续到结束
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”上失败时,将处理通量。
我犯了什么错误?有没有其他方法可以实现我的预期行为