如何在Angular2中正确编写http.get?

时间:2017-03-27 18:34:24

标签: angular http

我在JS中编写了http.get函数,但我需要它在Angular2的Typescript中。

我认为它涉及地图,但我不知道返回一个函数。

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';


@Injectable()
export class UrlExists {

    constructor(
        public http: Http
    ) {
    }

      newF(url) {
            this.http
                .get(url)
                .success(function () {
                    return true;
                })
                .error(function () {
                    return false;
                });
        };

}

1 个答案:

答案 0 :(得分:3)

最简单的形式是:

newF(url) {
    return this.http.get(url).map(res => res.json())                
};

这会返回observable类型,这与您可能使用的承诺没有什么不同,因为它可以返回成功或失败。 Observable比promises更强大,但是以简单的形式,你会得到一个成功或失败的回应。

Map只是将对象转换为另一个对象,即响应并返回响应的JSON。

没有全局错误处理或任何事情。

您可以在组件中使用:

myService.newF('some url').subscribe(
   data =>  //do something with data,
   error =>  //do something on error
);

为了进一步阅读Angular2中的HTTP客户端,docs非常彻底。

希望有所帮助。