2017-03-27 15 views
-1

私はjsでhttp.get関数を実行しますが、Angular2のTypescriptにする必要があります。手伝って頂けますか ? マップが関係すると思いますが、関数を返すことはわかりません。正しくangle2に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を返します。

グローバルなエラー処理などはありません。あなたがして、あなたのコンポーネントのそれを使用することになり

:Angular2でHTTPクライアント上の更なる読書について

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

docsはかなり徹底しています。

希望に役立ちます。

+0

ありがとうございます。シンプルで明確な答えを得てうれしいです。ご協力いただきありがとうございます。 – Louis

関連する問題