繁体   English   中英

如何在带有可观察对象的Angular 2 http服务中使http获取请求

[英]how to make http get request in angular 2 http service with observables

我刚刚完成了Promises的学习,现在正在学习Observables!

只是尝试使用Angular 4发出一个简单的get请求。松散地遵循本教程: https : //scotch.io/tutorials/angular-2-http-requests-with-observables

最初,当我尝试从rxjs/Observable导入Observable ,我遇到了一个编译错误,该错误本质上说map不是Observable<Response>的功能,但是将导入更改为rxjs解决编译错误。 但是现在我在运行时遇到了同样的错误...

我如何处理以下响应有什么问题?

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));
  }
}

** 错误详情 **

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

您还需要导入计划使用的所有RxJS运算符。 您可以在模块级别执行此操作。

例子:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM