2016-10-20 121 views
0

當我在方法的任何地方或其他地方使用'new Observable()'時,我的Web應用程序會中斷(不會加載)。Angular 2 RxJS Observable not loading

Angular version 2.1.0 
RxJs 5.0.0-beta.12 

這些都是我在的.ts文件導入:

import { Injectable } from '@angular/core'; 
import { DSUnit } from '../model/dsunit'; 
import { Headers, Http, Response } from '@angular/http'; 
import 'rxjs/add/operator/catch'; 
import 'rxjs/add/operator/map'; 
import 'rxjs/add/observable/throw'; 
import 'rxjs/Rx'; 
import { DSCategory } from './../model/dscategory'; 
import { Observable } from 'rxjs'; 

當我有這樣一段代碼它打破:

private handleError(error: any) : Observable<any> { 
    let errMsg = "argh"; 
    return new Observable(); // <-- "offending" code 
} 

與此錯誤的Chrome控制檯上:

(SystemJS) XHR error (404 Not Found) loading http://localhost:3000/node_modules/rxjs(…) 

而當我刪除關閉結束行,有這個:沒有錯誤

private handleError(error: any) : Observable<any> { 
    let errMsg = "argh"; 
    return null; // <-- "works" 
} 

我的web應用程序的負載。當然它的時候,「catch'語句試圖處理錯誤,但一旦我得到過去的,將工作分解與

"new Observable()" 

任何想法,任何人?

+0

'進口{可觀察}從 'rxjs /接收';'這抓住了我出來的以及... –

+0

有時你不能信任你的IDE當你使用自動導入功能.... – OddBeck

回答

0

該死的...... Visual Studio代碼中的「自動導入」已經搞亂了我的導入。

當我輸入 '{可觀察}' 它不應該是

import {Observable} from 'rxjs' 

應該

import {Observable} from 'rxjs/Rx' 
2

你可以試試這個:因主叫

Observable.of(errMsg); 

Observable.throw(errMsg); 

+0

它不起作用。事情是,任何使用Observable將創建一個Observable對象將會中斷。 我最初嘗試Observable.throw但打破了,所以我試圖返回一個簡單的Observable對象,它也打破。當我嘗試使用Observable.of()...時也是如此 – OddBeck