当我在方法或其他地方的任何地方使用'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()"
任何想法,任何人?
答案 0 :(得分:2)
你可以试试这个:
Observable.of(errMsg);
或
Observable.throw(errMsg);
取决于来电者。
答案 1 :(得分:0)
当我导入&#39; {Observable}&#39;它不应该是
import {Observable} from 'rxjs'
应该是
import {Observable} from 'rxjs/Rx'