RXJS MergeMap 没有被执行

RXJS MergeMap not getting executed

在下面的代码中,执行永远不会进入 mergemap。寻求有关更正此代码的帮助。

要求是,一旦我从 getBns 方法获得响应,我需要执行一些响应操作,然后使用 tap 运算符更新 HTML.

中使用的几个标志

Component.ts*

 this.bns$ = this.myService.getBns().pipe(
          mergeMap((bns) => {
            performloadKey()
            return bns
          }),
          tap((bns) => {
            console.log(bns);
          })
        );


this.bns$.pipe(takeUntil(this.destroyed$)).subscribe();

service.ts

getBns(): Observable<any>{
    return of(mockData); 
  }

我想 performLoadKey 也返回了一个可观察对象?如果是这样,我猜您想执行以下操作:

this.bns$ = this.myService.getBns().pipe(
  mergeMap((bns) => performloadKey().pipe(
    mapTo(bns)
  )),
  tap((bns) => console.log(bns))
);

MergeMap 仅在您 return 回调中的 Observable 时才有效。您正在订阅 of(bns),因此在回调中您 return 正在输入值 bns。如果 bns 不是 Observable 并且不发出任何值,则管道永远不会继续。