Angular 使用Observable.throw()中断
我正在尝试为http请求实现错误处理。我从angular doc复制了代码: 这是我的档案:Angular 使用Observable.throw()中断,angular,rxjs5,Angular,Rxjs5,我正在尝试为http请求实现错误处理。我从angular doc复制了代码: 这是我的档案: import {Injectable} from "@angular/core"; import {Http, Response} from "@angular/http"; import '/js/admin/rxjs-operators'; import {Observable} from "rxjs"; @Injectable() export class ApiService { pri
import {Injectable} from "@angular/core";
import {Http, Response} from "@angular/http";
import '/js/admin/rxjs-operators';
import {Observable} from "rxjs";
@Injectable()
export class ApiService {
private apiUrl: string = 'http://www.system.local/api/';
constructor(private http: Http) {
}
post(url: string, params): Observable<any> {
let requestUrl: string = this.apiUrl + url;
return this.http.post(requestUrl, params)
.map(response => response.json())
.catch(this.handleError);
}
private handleError(error: any) {
// In a real world app, we might use a remote logging infrastructure
// We'd also dig deeper into the error to get a better message
let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg); // log to console instead
return Observable.throw(errMsg);
}
private parseParams(obj: Object, prefix?: string): string {
var str = [];
for (var p in obj) {
if (obj.hasOwnProperty(p)) {
var k = prefix ? prefix + "[" + p + "]" : p, v = obj[p];
str.push(typeof v == "object" ?
this.parseParams(v, k) :
encodeURIComponent(k) + "=" + encodeURIComponent(v));
}
}
return str.length ? "?" + str.join("&") : '';
}
}
当我刷新页面时,立即出现错误:
zone.js:1274 GET http://www.system.local/node_modules/rxjs/ 404 (Not Found)
login:15 Error: (SystemJS) XHR error (404 Not Found) loading http://www.system.local/node_modules/rxjs(…)
当我注释掉//返回Observable.throw(errMsg)代码>一切正常,但无法进一步传递可观察的内容。
可能是什么?
我正在使用rxjs@5.0.0-beta.12
zone.js:1274 GET http://www.system.local/node_modules/rxjs/ 404 (Not Found)
login:15 Error: (SystemJS) XHR error (404 Not Found) loading http://www.system.local/node_modules/rxjs(…)