TypeError: rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable.throw is not a function
TypeError: rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable.throw is not a function
这是我的文件 userdata.service.ts :
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import {Observable} from 'rxjs';
import { map } from "rxjs/operators";
import { catchError } from 'rxjs/operators';
import { Data } from './userdata';
@Injectable()
export class UserDataService {
url : "http://localhost:4200/assets/data/userdata.json";
constructor(private http:Http) { }
getDataWithObservable() : Observable<any>{
return this.http.get(this.url)
.pipe(
map(this.extractData),
catchError(this.handleErrorObservable)
);
}
private extractData(res: Response)
{
let body = res.json();
return body;
}
private handleErrorObservable (error: Response | any)
{
return Observable.throw(error.message || error);
}
}
我收到以下错误:
TypeError: rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable.throw is not a
function
Observable.throw()
has been deleted.
尝试使用 Observable.throwError()
。显然这些定义还不是最新的。
您可以使用 import { throwError } from 'rxjs';
导入它
导入:
import { throwError } from 'rxjs';
用法:
return throwError(err);
在Angular8中使用
throwError(new NotFoundError("Resource Not Found."))
不要使用
Observable.throw(new NotFoundError("Resource Not Found."))
完整示例
catchError((error:Response) => {
if(error.status === 404) {
return throwError(new NotFoundError("Resource Not Found."));
}
return throwError(new AppError(error));
});
这是我的文件 userdata.service.ts :
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import {Observable} from 'rxjs';
import { map } from "rxjs/operators";
import { catchError } from 'rxjs/operators';
import { Data } from './userdata';
@Injectable()
export class UserDataService {
url : "http://localhost:4200/assets/data/userdata.json";
constructor(private http:Http) { }
getDataWithObservable() : Observable<any>{
return this.http.get(this.url)
.pipe(
map(this.extractData),
catchError(this.handleErrorObservable)
);
}
private extractData(res: Response)
{
let body = res.json();
return body;
}
private handleErrorObservable (error: Response | any)
{
return Observable.throw(error.message || error);
}
}
我收到以下错误:
TypeError: rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable.throw is not a function
Observable.throw()
has been deleted.
尝试使用 Observable.throwError()
。显然这些定义还不是最新的。
您可以使用 import { throwError } from 'rxjs';
导入:
import { throwError } from 'rxjs';
用法:
return throwError(err);
在Angular8中使用
throwError(new NotFoundError("Resource Not Found."))
不要使用
Observable.throw(new NotFoundError("Resource Not Found."))
完整示例
catchError((error:Response) => {
if(error.status === 404) {
return throwError(new NotFoundError("Resource Not Found."));
}
return throwError(new AppError(error));
});