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
上,在合并图上的花括号内。我的错,用括号编辑谢谢!现在我对你的代码有另一个问题。刚刚在这里发布了这个问题: