Angular 2 RxJS Observable未加载

时间:2016-10-20 07:22:06

标签: angular rxjs

当我在方法或其他地方的任何地方使用'new Observable()'时,我的Web应用程序会中断(不会加载)。

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" 
}

我的网络应用程序加载时没有错误..当然'当'catch'语句试图处理错误时它会中断,但是一旦我越过障碍就会有效

"new Observable()"

任何想法,任何人?

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

Observable.of(errMsg);

Observable.throw(errMsg);

取决于来电者。

答案 1 :(得分:0)

该死的......自动导入&#39;在Visual Studio Code中搞砸了我的导入。

当我导入&#39; {Observable}&#39;它不应该是

import {Observable} from 'rxjs'

应该是

import {Observable} from 'rxjs/Rx'