0

谁能解释一下 last() 和 takeLast() 方法之间的区别?正如文件所说:

last() - 将完成信号之前观察到的最后一个元素作为 Mono 发出,如果源为空,则发出 NoSuchElementException 错误。对于被动版本,请使用 takeLast(int)

takeLast() - 发出这个 Flux 在完成之前发出的最后 N 个值。

至于我,也是一样。我无法理解这些差异。有人可以用一个简单的例子来解释我吗?提前致谢

4

1 回答 1

3

基里尔,

takeLast(int n)接受整数,指示应该在流中留下多少元素示例:

Flux.just(1, 2, 3, 4)
        .takeLast(3)
        .subscribe(System.out::println);

将导致

234

同时,last()方法只是关于最后一个发出的元素。

Flux.just(1, 2, 3, 4)
        .last()
        .subscribe(System.out::print);

输出是

4


结论:takeLast(1)等于last()

于 2020-02-21T11:27:54.600 回答