Khác với phương thức flatMap(), phương thức map() của đối tượng Mono/Flux trong Project Reactor sẽ process item được emit, synchronously:
Trong hình trên, các item xanh lá cây, vàng, xanh dương được emit bởi Publisher sẽ được phương thức map() process synchronously. Kết quả trả về sẽ là một đối tượng Flux với các item sau khi được process. Các bạn có thể thêm các tác vụ khác nếu muốn.
Ví dụ của mình như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package com.huongdanjava.projectreactor; import reactor.core.publisher.Flux; public class Example { public static void main(String[] args) { Flux<String> flux = Flux.just("Khanh", "Quan"); flux.map(value -> value.length() + 2) .log() .subscribe(); } } |
Ở ví dụ này, mình chỉ làm một thao tác đơn giản là lấy độ dài của chuỗi cộng thêm 2. Sau đó dùng phương thức log() để xem giá trị của các item được trả về là gì.
Kết quả như sau: