rxjs - 将新的 rxjs observable 合并到现有的订阅 observable 中
问题描述
我有一个已经订阅的 rxjs observable:
const o = new rxjs.Subject();
o.subscribe( (v) => console.log("value: " + v);
由于一些不相关的事件,例如用户单击按钮,我需要从服务器获取数据,并将该数据放入现有的 observableo
中。使用 axios,我有这样的事情:
const aPromise = axios.get("someurl...")
然后我执行以下操作:
const secondObservable = rxjs.of(aPromise)
.subscribe( (response) => o.next(response.data) )
我的问题是是否有更好的方法将响应数据放入现有的已经订阅的 observable 中,也许使用运算符?
解决方案
您可以将调用的结果直接传递给您的 observable。
const axios = {
get: url => Promise.resolve('some value')
};
const o = new rxjs.Subject();
o.subscribe(v => { console.log("value: " + v); });
axios.get('url').then(data => { o.next(data); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.4.0/rxjs.umd.min.js"></script>
推荐阅读
- c - 在 C 中发送内容之前如何发送和接收文件大小?
- postgresql - 由于嵌套循环,查询运行时间长
- javascript - 用于在 WordPress 循环中关闭引导模式的动态脚本
- scala - SBT with Spark-Core 3.0.1 Exception NoClassDefFound for org/apache/log4j/Logger
- python - 将所有字符([0-9A-Za-z ] 除外)转换为 HTML 十进制实体
- c# - IEnumerator 的 C# 等待任务
- python-3.x - 如何比较两个表中的多个列并找出重复项?
- xml - 如何在basex上打印没有标签的数据?
- dart - 生成动态群人
- amazon-web-services - AWS DocumentDb 不支持 mongodb 4.0