我在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;
});
};
}
答案 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非常彻底。
希望有所帮助。