# Subscribe and trigger the sequence
subscribe();

# Do something with each produced value.
subscribe(Consumer<? super T> consumer);

# Deal with values but also react to an error
subscribe(Consumer<? super T> consumer,
Consumer<? super Throwable> errorConsumer);

# Deal with values and errors but also execute some code when the sequence successfully
# completes
subscribe(Consumer<? super T> consumer,
Consumer<? super Throwable> errorConsumer,
Runnable completeConsumer);

# Deal with values and errors and successful completion but also do something with the
# Subscription produced by this subscribe call
subscribe(Consumer<? super T> consumer,
Consumer<? super Throwable> errorConsumer,
Runnable completeConsumer,
Consumer<? super Subscription> subscriptionConsumer);
Flux<Integer> ints = Flux.range(1, 3); 
ints.subscribe();


Flux<Integer> ints = Flux.range(1, 3); 
ints.subscribe(i -> System.out.println(i));

1 2 3


Flux<Integer> ints = Flux.range(1, 4) 
.map(i -> {
if (i <= 3) return i;
throw new RuntimeException("Got to 4");
});
ints.subscribe(i -> System.out.println(i),
error -> System.err.println("Error: " + error));

1 2 3 Error: java.lang.RuntimeException: Got to 4


Flux<Integer> ints = Flux.range(1, 4); 
ints.subscribe(i -> System.out.println(i),
error -> System.err.println("Error " + error),
() -> System.out.println("Done"));

1 2 3 4 Done


// 如果小于10 则会输出done  >10 不会输出Done
Flux<Integer> ints = Flux.range(1, 4);
ints.subscribe(i -> System.out.println(i),
error -> System.err.println("Error " + error),
() -> System.out.println("Done"),
sub -> sub.request(10));


1
2
3
4
Done



// 打印 5 6 7
Flux<Integer> numbersFromFiveToSeven = Flux.range(5, 3);
numbersFromFiveToSeven.subscribe(System.out::println);


just

# 输出换行的 1 2 3
Flux<String> flux = Flux.just("1","2","3");
flux.subscribe(System.out::println);