Я новичок в Angular, и у меня есть базовые знания об этом.Я хочу изучить HttpClient, чтобы я мог создать файл JSON вместо реального сервера.Я создал службу и импортировал HttpClient:
service.ts
import { Injectable } from '@angular/core';
import {HttpClient, HttpErrorResponse} from '@angular/common/http';
import {IEmployee} from "../../../service/src/app/employee";
import {Observable} from "rxjs/index";
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
В моем классе EmployeeService
я создал метод для получения данных из файла json:
@Injectable({
providedIn: 'root'
})
export class EmployeeService {
private _url: string = "/assets/data/employees.json";
constructor(private http:HttpClient) { }
getEmployee():Observable<IEmployee[]> {
return this.http.get<IEmployee[]>(this._url)
.catch(this.errorHandler);
}
errorHandler(error: HttpErrorResponse) {
return Observable.throw(error.message || "Server Error")
}
}
Но в методе getEmployee я получил следующие ошибки:
ERROR in ./src/app/employee.service.ts
Module not found: Error: Can't resolve 'rxjs/add/observable/throw' in 'E:\Tutorial\NodeJS\WebstormProjects\Angular\http\src\app'
ERROR in ./src/app/employee.service.ts
Module not found: Error: Can't resolve 'rxjs/add/operator/catch' in 'E:\Tutorial\NodeJS\WebstormProjects\Angular\http\src\app'
i 「wdm」: Failed to compile.
Как вы можете видеть, я импортировал операторы throw
и catch
, но я не знаю, почему я получаю ошибки.
Другая проблема, ниже throw method
появляется строка из-за устаревших (Deprecated symbol used, consult docs for better alternative
) !!Какая альтернатива?
Angular CLI: 6.0.1
Node: 10.0.0
OS: win32 x64
Angular:
...
Package Version
------------------------------------------------------
@angular-devkit/architect 0.6.1
@angular-devkit/core 0.6.1
@angular-devkit/schematics 0.6.1
@schematics/angular 0.6.1
@schematics/update 0.6.1
rxjs 6.1.0
typescript 2.7.2
****************** РЕДАКТИРОВАТЬ ***************
Я хочу использовать встроенный Observable в Angular, но я не хочу использовать стороннюю библиотеку RXJS для angular.
Это моя папка rx модуля узла, и вы можете видетьв нем наблюдаемый файл.
А в папке node_modules\rxjs\operator
есть throw
и catch
файл .. Но почему он хочет искатьэти файлы в E:\Tutorial\NodeJS\WebstormProjects\Angular\http\src\app
папку, которая делает ошибку?