Typescript 使用mergMap后无法访问以前的有效负载值

Typescript 使用mergMap后无法访问以前的有效负载值,typescript,react-redux,rxjs,observable,redux-observable,Typescript,React Redux,Rxjs,Observable,Redux Observable,我有以下代码: export const googleTagManagerInternalActionsEpic: Epic<RootAction, RootAction, RootState, Services> = (action$, state$) => { return action$.pipe( mergeMap(action => merge( of(action).pipe( filter(isActionOf(tr

我有以下代码:

export const googleTagManagerInternalActionsEpic: Epic<RootAction, RootAction, RootState, Services> = (action$, state$) => {

  return action$.pipe(
    mergeMap(action => merge(
      of(action).pipe(
        filter(isActionOf(triggerGTMEvent)),
        tap(({ payload: eventName }) => {
            console.log(eventName);
        }),
        mergeMap(() => loadQuestion()),
        map(questionImport => questionImport.default),
        tap((question) => {
          console.log(question);
          debugger;
        }),
        ignoreElements(),
      ),
    )),
  );

}
export-const-googleTagManagerInternalActionsEpic:Epic=(action$,state$)=>{
返回操作$.pipe(
合并映射(操作=>merge(
管(
过滤器(isActionOf(triggerGTMEvent)),
点击({payload:eventName})=>{
console.log(eventName);
}),
合并映射(()=>loadQuestion()),
映射(questionImport=>questionImport.default),
点击((问题)=>{
控制台日志(问题);
调试器;
}),
ignoreElements(),
),
)),
);
}
我需要在第二个
console.log(…)
上访问与第一个
console.log(…)
上相同的
eventName
值。我这里的问题是中间的
mergeMap
(它阻止了有效负载的传播)。为了从
loadQuestion()
调用中获取一些信息,我不得不使用该
mergeMap

我是否可以同时获得这两个值


谢谢

您可以在mergeMap中使用第二个参数:

...
        tap(({ payload: eventName }) => {
            console.log(eventName);
        }),
        mergeMap(() => loadQuestion(), (eventName, questionImport) => ({
          eventName,
          questionImport
        })),
        map(({ eventName, questionImport }) => ({
          eventName,
          question: questionImport.default
        })),
        tap(({ eventName, question }) => {
          console.log(eventName, question);
          debugger;
        }),
...

我认为该语法有问题,我得到了一个错误:
逗号运算符的左侧未使用且没有副作用。ts(2695)
eventName
上,在合并图上的花括号内。我的错,用括号编辑谢谢!现在我对你的代码有另一个问题。刚刚在这里发布了这个问题: