程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Concat VS合并运算符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Concat VS合并运算符?

开发过程中遇到Concat VS合并运算符的问题如何解决?下面主要结合日常开发的经验,给出你关于Concat VS合并运算符的解决方法建议,希望对你解决Concat VS合并运算符有所启发或帮助;

如您所引用的文档中所述- 合并可以交错输出,而concat将首先等待较早的流完成,然后再处理较晚的流。在您的情况下,对于单元素静态流,它没有任何实际的区别(但从理论上讲,合并可以按随机顺序输出单词,但根据规范仍然有效)。如果您想查看两者之间的区别,请尝试执行以下操作(之后需要添加一些睡眠以避免过早退出)

    Observable.merge(
            Observable.interval(1, TimeUnit.SECONDS).map(ID -> "A" + ID),
            Observable.interval(1, TimeUnit.SECONDS).map(ID -> "B" + ID))
    .subscribe(System.out::println);

    Observable.concat(
            Observable.interval(1, TimeUnit.SECONDS).map(ID -> "A" + ID),
            Observable.interval(1, TimeUnit.SECONDS).map(ID -> "B" + ID))
    .subscribe(System.out::println);

Concat永远不会开始打印B,因为流A永远不会结束。

s / stream / observable / g;)

文档提供了漂亮的图形来显示差异。您需要记住,合并不能 保证 逐项交错,这只是可能的例子之一。

Concat VS合并运算符

Concat VS合并运算符

解决方法

我查看了RXJava的文档,发现concat和merge运算符似乎也做同样的事情。我写了几次测试来确定。

@Test
public void TESTContact() {

    Observable.concat(Observable.just("Hello"),Observable.just("reactive"),Observable.just("world"))
              .subscribe(System.out::println);
}

@Test
public void testMerge() {

    Observable.merge(Observable.just("Hello"),Observable.just("world"))
            .subscribe(System.out::println);
}

该文件说

但是我还是不太了解,运行此测试数千次,合并结果始终是相同的。由于未授予该命令,因此我期望有时会出现“反应性”,“世界”,“你好”。

代码在这里https://github.com/politrons/reactive

大佬总结

以上是大佬教程为你收集整理的Concat VS合并运算符全部内容,希望文章能够帮你解决Concat VS合并运算符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。