Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular RxJs subscribeTo.js observable check在Chrome中工作,但在Chrome Incognito、MS Edge和Firefox中失败_Angular_Redux_Rxjs_Redux Observable - Fatal编程技术网

Angular RxJs subscribeTo.js observable check在Chrome中工作,但在Chrome Incognito、MS Edge和Firefox中失败

Angular RxJs subscribeTo.js observable check在Chrome中工作,但在Chrome Incognito、MS Edge和Firefox中失败,angular,redux,rxjs,redux-observable,Angular,Redux,Rxjs,Redux Observable,在我的Anguar7项目中,我经常做我的副作用 我的代码在Chrome上运行,但在Chrome Incognito、MS Edge和Firefox上完全相同的构建失败。我得到的错误如下: ERROR TypeError: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable. at subscribeTo

在我的Anguar7项目中,我经常做我的副作用

我的代码在Chrome上运行,但在Chrome Incognito、MS Edge和Firefox上完全相同的构建失败。我得到的错误如下:

ERROR TypeError: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
    at subscribeTo (subscribeTo.js:58)
    at from (from.js:17)
    at MergeMapSubscriber.project (createEpicMiddleware.js:36)
    at MergeMapSubscriber.push.../../../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._tryNext (mergeMap.js:61)
    at MergeMapSubscriber.push.../../../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._next (mergeMap.js:51)
    at MergeMapSubscriber.push.../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54)
    at MapSubscriber.push.../../../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber._next (map.js:41)
    at MapSubscriber.push.../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54)
    at Subject.push.../../../node_modules/rxjs/_esm5/internal/Subject.js.Subject.next (Subject.js:47)
    at Function.epicMiddleware.run (createEpicMiddleware.js:62)
    at SafeSubscriber._next (redux.configuration.ts:50)
正如您所看到的,这个错误是在redux observable的createEpicMiddleware中抛出的,这是由RxJs中的检查引起的

然后,我在阅读了一篇文章的回复后,试图深入研究这个问题。最后,用户Agraphie评论说签入subscribeTo.js失败。我检查了这个,果然,这个检查在标准的Chrome浏览器中有效,但在所有其他浏览器中都失败了。我添加到subscribeTo.js的检查代码如下所示:

export var subscribeTo = function (result) {
    if (isObservable(result)) {
        result.pipe(filter(x => x && x.type === 'GET_PLATFORM_SUCCESS')).subscribe(x => {
            console.log('Incoming value', result);
            console.log(`result && typeof result[Symbol_observable] === 'function': \n`, result && typeof result[Symbol_observable] === 'function');
            console.log('---------------------------')
        });
    }
    ...
结果可以在下面的屏幕截图中看到左侧是标准镀铬,右侧是不知名镀铬

注意,可观察的是可观察的。它甚至通过了RxJs自己的isObservable测试。那么为什么它没有通过下面的检查呢

如果你仔细看上面,你可以看到,进入的可观测对象的原型从左边和右边看是不同的。更准确地说,左侧有函数属性Symbolobservable:f,右侧没有。相反,右边有@@observable:f

简而言之,检查结果&&typeof result[Symbol\u observable]==“function”是错误的原因,因为Symbol\u observable缺失。据我所知

依赖项和版本 我用

角度7.0.2 rxjs 6.3.3 rxjs compat 6.3.3 redux observable 1.0.0他们使用rxjs 6-。 我的问题 为什么会发生这种情况? 我怎样才能修好它


我已经看过了,但我不确定如何使用它,或者这是否是一个好的解决方案。

我也有同样的问题,配置几乎相同

经过一些研究后,我检查了所有导入,并更改了从rxjs/internal/operators的所有导入

至rxjs/运营商

这解决了Firefox、Chrome隐姓埋名等问题


干杯

我有同样的问题,配置几乎相同

经过一些研究后,我检查了所有导入,并更改了从rxjs/internal/operators的所有导入

至rxjs/运营商

这解决了Firefox、Chrome隐姓埋名等问题

干杯

我对rxjs/index也有同样的问题

更改自:

import { of, from, combineLatest, ... } from `rxjs/index`
致:

修好了

祝你好运:

我对rxjs/index也有同样的问题

更改自:

import { of, from, combineLatest, ... } from `rxjs/index`
致:

修好了


祝你好运:

我还可以补充一点,问题不在于RxJs,正如我在问题中所想的那样。错误的导入+一些错误的项目架构。@MartinJH能否请您提供更多关于您如何解决问题的信息,我有完全相同的问题,并且我修复了导入,但我仍然有相同的问题。对于不太充实的评论,我感到担忧;我的另一个问题是整个项目的结构。在我们的项目中,我们有标准npm包和angular库。我们通过他们所谓的史诗来制造副作用。我们在npm包中有epics的基本部分,在angular Library中有angular实现,继承自基本类型。这种跨库的继承在某种程度上破坏了可观察类型,导致了错误。解决方案是将epic相关的所有内容都移动到angular库中。@MartinJH与此同时,我也解决了这个问题:我正在使用我创建的另一个npm包,它公开了redux observable,但它有一个不同的rxjs版本,所以基本上我在我的项目中有两个不同的rxjs源,我认为这是造成错误的原因。解决方案是只保留一个RXJ,并将redux移动到我的主项目,而不是从npmpackage@ziz194太好了!调试此类错误可能非常困难。希望你的评论也能帮助一些人:我还可以补充一点,问题不在于RxJs,正如我在问题中所想的那样。错误的导入+一些错误的项目架构。@MartinJH能否请您提供更多关于您如何解决问题的信息,我有完全相同的问题,并且我修复了导入,但我仍然有相同的问题。对于不太充实的评论,我感到担忧;我的另一个问题是整个项目的结构。在我们的项目中,我们有标准npm包和angular库。我们通过他们所谓的史诗来制造副作用。我们在npm包中有epics的基本部分,在angular Library中有angular实现,继承自基本类型。这种跨库的继承在某种程度上破坏了可观察类型,导致了错误。解决方案是将epic相关的所有内容都移动到angular库中。@MartinJH与此同时,我也解决了这个问题:我正在使用我创建的另一个npm包,它公开了redux observable,但它有一个不同的rxjs版本,所以基本上我在我的项目中有两个不同的rxjs源,我认为这是造成错误的原因。解决办法是只保留一个rx
js并将redux obserfible移动到我的主项目,而不是从npmpackage@ziz194太好了!调试此类错误可能非常困难。希望你的评论也能对某人有所帮助:这可能有帮助:这可能有帮助:
import { of, from, combineLatest, ... } from `rxjs/index`
import { of, from, combineLatest, ... } from `rxjs`