获取请求失败angular2

get request fail angular2

我创建了应该发送带有 1 个参数的获取请求的网络服务, 我应该从 API,

得到结果

NetworkServices.ts

import { Injectable } from '@angular/core';
import {Http} from "@angular/http";

@Injectable()
export class NetworkServices{
  constructor(public http:Http){

  }
  getCurrency(obj){
    console.log("function fired!")
    let url = 'http://api.fixer.io/latest?base='+obj.selectedCurrency;
    console.log(obj);
    this.http.get(url)
      .toPromise()
      .then( (res) => {
          return res;
        }
      )
  }
}

结果应该在 res,这是 3 周前的工作,我不知道 angular 如何更改嘿..

错误代码是:

[19:46:04]  transpile update started ...
[19:46:06]  typescript: D:/ionic/firstApp/src/services/network.ts, line: 25 
            Property 'toPromise' does not exist on type 'Observable<Response>'.

      L24:    return this.http.get(url).toPromise();
[19:46:06]  transpile update failed       L25:
}

[19:46:06]  watch ready

希望你们能解决这个问题:)

您的方法没有 return 任何东西,then 回调除了将一个 Promise<Response> 转换为另一个 Promise<Response> 之外没有做任何事情。所以你的整个方法基本上是一个空洞。

代码大概应该是这样的

getCurrency(obj){
    console.log("function fired!")
    let url = `http://api.fixer.io/latest?base=${obj.selectedCurrency}`;
    console.log(obj);
    return this.http.get(url).toPromise();
}

或者,如果您想 return 一个包含 json 响应正文而不是响应本身的承诺

getCurrency(obj){
    console.log("function fired!")
    let url = `http://api.fixer.io/latest?base=${obj.selectedCurrency}`;
    console.log(obj);
    return this.http.get(url).toPromise().then(res => res.json());
}

关于你的编译错误,需要引入toPromise操作符:

import 'rxjs/add/operator/toPromise';

您需要添加

import 'rxjs/add/operator/toPromise'