Merge 理解rxjs6中的合并(特别是可以观察到的redux)

Merge 理解rxjs6中的合并(特别是可以观察到的redux),merge,redux-observable,rxjs6,Merge,Redux Observable,Rxjs6,Context:我正尝试使用redux observable和rxjsv6在获取资源后触发多个操作 问题:我可以在获取资源后触发单个操作,没有问题;但我试图触发多个动作,这让我很难堪。具体地说,下面我尝试使用rxjsmerge来触发多个操作,这看起来太标准了,与文档化的示例()非常接近,以至于我无法理解我的错误所在。下面是我的代码的分类,注释中显示了typescript类型;为了明确问题,我简化了事情: import { from } from "rxjs"; import { merge,

Context:我正尝试使用
redux observable
rxjsv6
在获取资源后触发多个操作

问题:我可以在获取资源后触发单个操作,没有问题;但我试图触发多个动作,这让我很难堪。具体地说,下面我尝试使用rxjs
merge
来触发多个操作,这看起来太标准了,与文档化的示例()非常接近,以至于我无法理解我的错误所在。下面是我的代码的分类,注释中显示了typescript类型;为了明确问题,我简化了事情:

import { from } from "rxjs"; 
import { merge, mergeMap, map } from "rxjs/operators";
import { AnyAction } from "redux";

... //Setup related to rxjs-observable epics

function myEpic(
    action$: Observable<AnyAction>,
    state$: any,
    {fetchPromisedStrings}: any
) {
    return action$.pipe(
        ofType('MY_ACTION'),
        mergeMap(
            action => 
{
    const demoAction1: AnyAction = {type:'FOO1', payload:'BAR1'};
    const demoAction2: AnyAction = {type:'FOO2', payload:'BAR2'};

    const w = from(fetchPromisedStrings())     //const w: Observable<string[]>
    const x = w.pipe( map(() => demoAction1)); //const x: Observable<AnyAction> 
    const y = w.pipe( map(() => demoAction2)); //const y: Observable<AnyAction> 

    //My attempt to merge observables:
    const z = merge(x,y); // const z: OperatorFunction<{}, {} | AnyAction>

    // return x; // Works :)
    // return y; // Works :)
    return z;    // Doesn't work :(
}   
        )
    );
}    

那么这里有什么问题?我希望上述代码中的
merge
采用两种
Observable
类型,并返回一种
Observable
类型(或者与
Observable
兼容的更通用的类型,我的epic需要这种类型才能正常工作)。相反,我得到了一个名为
OperatorFunction
的不透明类型,它显然与
Observable
不兼容。有人能帮我解惑一下吗?
merge
不是我在这里应该使用的操作符,或者我的整个
rxjs-v6
模式对于(似乎)在获取承诺的资源后触发多个操作的简单目标来说是错误的吗?

您的代码是正确的,但是您已经导入了操作符而不是可观察的工厂

只要做:

import { merge } from 'rxjs';

啊!非常感谢!过来说这对我的问题有帮助。我花了很长时间试图弄明白为什么它不起作用,这一切都归结于一个导入,所以谢谢!!只是作为一个操作员而不是一个工厂,concat遇到了同样的问题。。。谢谢
import { merge } from 'rxjs';