2015-12-29 9 views
5

Angular2で同期してhttpについての例を作成してもらえますか?私は以下のようにしようとしたAngular2 http synchronous

: コンポーネントで:

getAllAddress(){ 
    this.addressService.getAllAddress().then(
      result => { 
       this.data = result.list; 
       this.onChangeTable(this.config, null); 
       console.log('FIRST'); 
      } 
     ); 
    console.log('LAST'); 
} 

サービスで:

public getAllAddress(){ 
    return this.__http.get('LOCATION') 
    .map((res) => { 
     return res.json() 
    }) 
    .toPromise(); 
} 

しかし、コンソールのshow logは '最初の' の前に 'LAST' です。

ありがとうございました。

答えて

1

ConnectionクラスとConnectionBackendクラスを独自に作成し、アプリのブートストラップ時に注入する必要があります。

bootstrap([provide(ConnectionBackend, {useClass:XHRSynchronousBackend}), 
provide(Connection,{useClass:XHRSynchronousConnection}]; 

を次のように

export class XHRSynchronousConnection implements Connection  
{ 

} 

export class XHRSynchronousConnectionBackend implements ConnectionBackend 
{ 
} 

以下のサンプルコードを参照してください、あなたはactual source code内のコードの残りの部分を見ることができ、それをブートストラップすることができます。

+3

いいえ、どうぞ、いいえ、しないでください。これは、リクエストが飛行中に文字通りアプリケーションをフリーズするため、ブラウザで実行されているすべてのアプリケーションにとってひどい考えです。これが悪い考えであると言及しているMDNの文書を見てください。 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest – robwormald

関連する問題