我用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客户端,文档非常全面。
希望有帮助。