sách gpt4 ai đã đi

Đánh giá về Chains trong RxJava

In lại 作者:行者123 更新时间:2023-11-30 08:56:41 26 4
mua khóa gpt4 Nike

Random rand = new Random();
Observable random1 = Observable.just(rand.nextInt());
Observable random2 = random1.flatMap(r1->Observable.just(r1 * rand.nextInt()));
random2.subscribe(System.out::println);

上面的代码只是取几个随机数,将它们相乘,然后打印输出。

这是我的问题:在我打印出结果时,有没有一种优雅的方法可以让我获得第一个随机值?请注意,我的实际系统正在进行异步调用,而不仅仅是生成随机数。

以下是一些我认为不优雅的示例:

Random rand = new Random();
Observable random1 = Observable.just(rand.nextInt());
random1.subscribe(r1->{
Observable random2 = Observable.just(r1 * rand.nextInt());
random2.subscribe(r2->{
System.out.println(r1);
System.out.println(r2);
});
});

.

Random rand = new Random();
Observable random1 = Observable.just(rand.nextInt());
Observable result = random1.flatMap(r1->{
int[] pair = new int[2];
pair[0] = r1;
pair[1] = r1 * rand.nextInt();
return Observable.just(pair);
});
result.subscribe(pair-> {
System.out.println(pair[0]);
System.out.println(pair[1]);
});

.

Random rand = new Random();
int[] hack = new int[1];
Observable random1 = Observable.just(rand.nextInt()).doOnNext(r1->hack[0]=r1);
Observable random2 = random1.flatMap(r1->Observable.just(r1 * rand.nextInt()));
random2.subscribe(r2->{
System.out.println(hack[0]);
System.out.println(r2);
});

最后,还有这个,我不确定这是不是一个好习惯:

Random rand = new Random();
Observable random1 = Observable.just(rand.nextInt());
Observable random2 = random1.flatMap(r1->Observable.just(r1 * rand.nextInt()));
random2.subscribe(r2-> System.out.println(random1.toBlocking().first()));

1 Câu trả lời

有一个 flatMap 重载,它允许您指定一个 Func2,它接收源值和 Observable 中的每个值并为其展平:

Random rand = new Random();
Observable random1 = Observable.just(rand.nextInt());
Observable<>> random2 = random1.flatMap(
r1 -> Observable.just(r1 * rand.nextInt()),
(r1, r2) -> Arrays.asList(r1, r2));

random2.subscribe(System.out::println);

关于java - 回顾 RxJava 中的链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510740/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com