Angular 2 HTTP 不工作

Angular 2 HTTP is not working

我正在使用 Angular 2 beta.18,并尝试使用 google 地图地理编码。 我正在按照所有教程描述的方式进行操作,但收到了奇怪的回复。

我的组件:

import { Injectable } from '@angular/core';
import { Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';

@Injectable()
export class GoogleMapService {

  constructor(private http: Http) { }

convertAddressToCooredinate(address: string){
  if(address != null){
    var address ="1334 Emerson St, NE Washington DC";
    return this.http.get('https://maps.googleapis.com/maps/api/geocode/json?address='+encodeURIComponent(address))
                    .map(response => response.json());  
    }
  }
}

响应应包含 JSON 和结果,但我收到以下内容:

Observable {_isScalar: false, source: Observable, operator: MapOperator}

我尝试将请求定向到其他 URL 并收到相同的响应。

你的 convertAddressToCooredinate 函数 returns 一个可观察的。如果您不在代码中订阅此可观察对象,则不会对后端进行 rest 调用。因此,您只记录您的观察结果。

示例:

Some Component
constructor(private gms: GoogleMapService ) { 
    this.gms.convertAddressToCooredinate('some address')
        .subscribe((response)=>{
            console.log(response);
        });
}