gpt4 book ai didi

java - RxJava2多线程或者出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:12 25 4
gpt4 key购买 nike

我是 rxjava 的初学者,我遇到了一个问题。

我有两个网络调用。

Observable<ClassA> getClassA(){
return networkExecutor.getClassAFromApi();
}
Observable<ClassB> getClassB(){
return networkExecutor.getClassBFromApi();
}

现在我需要这两个才能让代码继续,所以我对它们进行了压缩。另外,我想将这些值临时保存在私有(private)类范围变量中,比如 cA 和 cB;

 getClassA().zipWith(getClassB, (classA, classB) -> {
cA = classA;
cB = classB;
return true;
}

问题是,当我稍后重复相同的步骤时,cA 和 cB 是旧值而不是新值。

例如,我第一次调用 zip 方法时,cA 和 cB 的哈希值是 xxx1, xxx2

当我第二次调用相同的方法时,会从网络生成具有哈希值 xxx3 和 xxx4 的新对象。

当我调用这个类的 getter 时,我得到的是 cA xxx1,而不是我应该已经得到了 xxx3。

最佳答案

您可以在事件发生后使用一些 do 运算符来清除哈希字段,或者在继续新请求之前清除它们。查找Do operators 。我可能会使用 doAfterNext() 运算符并根据需要重置字段。

关于java - RxJava2多线程或者出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46105119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com