/ / jak zrobić http uzyskać żądanie w kancie 2 usługi http z obserwowalnymi - kątowe

jak zrobić http uzyskać żądanie w kancie 2 usługi http z obserwowalnymi - kątowe

Właśnie skończyłem doskonalić Obietnice, teraz uczę się Observables!

Po prostu próbuję zrobić proste żądanie pobrania za pomocą Angular 4. Luźne śledzenie tego samouczka: https://scotch.io/tutorials/angular-2-http-requests-with-observables.

Początkowo, gdy próbowałem importować Observable od rxjs/Observable Dostałem błąd kompilacji mówiąc, że mapa nie była funkcją Observable<Response>, ale zmieniając import na just rxjs rozwiązano błąd kompilacji. Ale teraz pojawia się ten sam błąd w czasie wykonywania ...

Co jest nie tak z tym, jak mam do czynienia z odpowiedzią poniżej?

import { Injectable } from "@angular/core";
import { apiConfig } from "../../environments/environment";
import { Http, Response, Headers, RequestOptions } from "@angular/http";
import { APIRequest, APIResponse} from "./api-objects";
import { Observable } from "rxjs";

/**
* The BaseAPIService can be extended to provide base functionality for communicating to the API endpoint.
*/
@Injectable()
export class BaseAPIService {

private apiBase = apiConfig.base;

constructor(protected http: Http) { }

/**
* Sends an API request to the endpoint
*/
sendRequest(request: APIRequest): Observable<APIResponse> {
const options = new RequestOptions({ });
const fullUrl = `apiBase${request.url}`;
request.body = request.body || {};
return this.http.get(fullUrl).map((response: Response) => new APIResponse(response));
}
}

** Szczegóły błędu **

this.http.get(...).map is not a function
at CoreAPIService.webpackJsonp.356.BaseAPIService.sendRequest (base-api.service.ts:25)

Odpowiedzi:

0 dla odpowiedzi № 1

Będziesz także musiał zaimportować dowolnych operatorów RxJS, których zamierzasz używać. Możesz to zrobić na poziomie modułu.

Przykłady:

import "rxjs/add/operator/map";
import "rxjs/add/operator/catch";
import "rxjs/add/operator/switchMap";