Angular 无法获取属性';0';指未定义的或空的引用

Angular 无法获取属性';0';指未定义的或空的引用,angular,rxjs,observable,Angular,Rxjs,Observable,我得到以下错误,仅在IE/Edge中显示 Unable to get propety '0' of undefined or null reference 我以以下方式使用RxJs可观测数据: getVersions(): void { this.databaseService.getProductVersions().subscribe( (versions) => this.processVersions(versions), (error) => con

我得到以下错误,仅在IE/Edge中显示

Unable to get propety '0' of undefined or null reference
我以以下方式使用RxJs可观测数据:

getVersions(): void {
  this.databaseService.getProductVersions().subscribe(
    (versions) => this.processVersions(versions),
    (error) => console.error(error)
  );
}
而在Chrome/Firefox中,这项工作不会出错。productVersions如下所示:

getProductVersions(): Observable<any[]> {
    let options = this.header();
    let url: string = this.baseUrl + 'admin/version/searchall';
    return this.http.get(url, options).map(
        response => response.json(),
        error => console.log(error)
    );
}
getProductVersions():可观察{
让options=this.header();
让url:string=this.baseUrl+'admin/version/searchall';
返回此.http.get(url,options).map(
response=>response.json(),
error=>console.log(错误)
);
}

我是否错误地使用了可观察的。我应该退订吗?(我的api调用是有限的,所以从我所读到的内容来看,取消订阅是不必要的)。

据我所知,
.map
操作符无法处理错误,因此没有使用它。RxJS提供了负责它的
.catch
方法


试着去解决它,如果那样做不好,我们会找到另一个解决办法。我没有IDE可以自己测试,所以请原谅我。=)

据我所知,
.map
操作符无法处理错误,因此没有使用它。RxJS提供了负责它的
.catch
方法


试着去解决它,如果那样做不好,我们会找到另一个解决办法。我没有IDE可以自己测试,所以请原谅我。=)

从您提供的图像中可以看出,在取消订阅(或完成)观察者时调用的
\uu tryoruunsub
方法中出现错误

问题是为什么会发生这种情况,我怀疑错误来自
this.processVersions(…)
调用。否则代码看起来很好,请注意
map()
操作符的第二个参数用于设置自定义
上下文(请参阅)


在您的代码中,您正在将
设置为函数
(错误)=>控制台。错误(错误)
,但这应该不是问题。

从您提供的图像中可以看出,此错误是在取消订阅(或完成)观察者时调用的
\u tryornunsub
方法中引发的

问题是为什么会发生这种情况,我怀疑错误来自
this.processVersions(…)
调用。否则代码看起来很好,请注意
map()
操作符的第二个参数用于设置自定义
上下文(请参阅)


在您的代码中,您将
this
设置为一个函数
(error)=>console.error(error)
,但这应该不是问题。

我想我已经排除了我使用的第三方库。但我发现它正在那里发生。所以问题不是我的代码造成的。感谢@Martin和@Jakub的帮助。多亏了你,我现在至少正确地使用了map/catch方法。

我想我已经排除了我正在使用的第三方库。但我发现它正在那里发生。所以问题不是我的代码造成的。感谢@Martin和@Jakub的帮助。多亏了你,我现在至少正确地使用了map/catch方法