2017-03-27 62 views
1

IE/Edgeのみに表示される次のエラーが発生しています。未定義またはnull参照のプロパティ '0'を取得できません

Unable to get propety '0' of undefined or null reference 

enter image description here 私は次のように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) 
    ); 
} 

Observableを間違って使用していますか?退会するべきですか? (私のapiコールは有限ですので、私が読んだことは、購読を解除する必要はありません)。

答えて

0

私が使用していたサードパーティライブラリを除外したと思いました。しかし、私はそれがそこで起こっていたことが分かった。だから問題を引き起こしたのは私のコードではなかった。あなたの助けに感謝@Martinと@Jakub。私は少なくとも今あなたのおかげでマップ/キャッチメソッドを正しく使用しています。

0

私が知る限り、.mapオペレータはエラーを処理できないため、その使用方法はありません。 RxJSは、それを担当する.catchメソッドを提供します。

これで問題が解決されない場合は、別の解決策が見つかります。私は自分自身でそれをテストするためにIDEから出ているので、私を許してください。 =)

0

__tryOrUnsubメソッドでエラーが発生したことを指定した画像から、オブザーバーの登録を解除(または完了)するときに呼び出される内部メソッドです。

質問が発生した理由は、エラーがthis.processVersions(...)コールから発生していることが疑わしいです。それ以外の場合は、コードが正常に見えます。map()演算子の2番目のパラメータを使用して、カスタムthisコンテキスト(http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-map参照)を設定することに注意してください。

コードでは、thisを関数(error) => console.error(error)に設定していますが、これは問題ではありません。

関連する問題