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



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

最简单的形式是:

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

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

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

这没有全局错误处理或任何东西。

您可以在组件中将其用于:

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

为了进一步阅读Angular2中的HTTP客户端,文档非常全面。

希望有帮助。

最新更新