2017-03-27 68 views
-1

我在js中编写了http.get函数,但我需要它在Typescript for Angular2中。你可以帮我吗 ? 我认为它涉及地图,但我不知道要返回一个函数。如何在angular2中正确编写http.get

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

} 

回答

3

最简单的形式是:

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客户端上的进一步阅读,docs是相当彻底。

希望有所帮助。

+0

谢谢,很高兴有一个简单明了的答案。谢谢你的帮助。 – Louis