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 并且不发出任何值,则管道永远不会继续。
在下面的代码中,执行永远不会进入 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 并且不发出任何值,则管道永远不会继续。