rxjs forkjoin问题

发布于 2022-09-12 03:31:54 字数 968 浏览 14 评论 0

问题描述

使用rxjs的forkjon想要处理两个异步请求的结果,但是其中一个异步请求可能会因为某种原因不需要发送。因此我会返回一个空的流,但是这会导致另一个正常想要发送的请求自动cancel,请问有什么解决方案

问题出现的环境背景及自己尝试过哪些方法

相关代码

粘贴代码文本(请勿用截图)

export class SystemService {
    constructor(private http: HttpClient) {}
    
    public getSystemInfo (): Observable<SystemInfo> {
        return this.http.get<SystemInfo>('/goods/test',{withCredentials: true})
    } 

    public factory() {
        const source$ = this.getSystemInfo();
        const source$2 = of(1);
        return of('').pipe(mergeMap(([source$, source$2])=> {
            return forkJoin((source, result)=> {
                return source;
            })
        }))
    }

}

在component.ts中调用

this.sysService.factory().subscribe(res=> {
            console.log(res);
        })

你期待的结果是什么?实际看到的错误信息又是什么?

期待返回正常调用的请求的结果即source$的结果,但是这种写法不报错,也不会下发getSystemInfo()的请求。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文