2017-09-07 4 views
1

サービスから詳細を取得し、loginDetailsArray配列に割り当てています。今私は関数()を呼び出す必要がありますデータが成功した後。 私は関数()を直接呼び出そうとしましたが、データを取得する前にその関数を読み込んでいます。 ここでコールバック関数を使うことを考えていました。しかし、これに新しいので、私はそれを得る方法の考えがありません。前もって感謝します。Angular2のHTTPリクエストが成功した場合にコールバック関数を使用する方法は?

loadLoginDetails() { 
 

 
    this.customerService.getLoginDetails().subscribe(res => { 
 

 
    this.loginDetailsArray = res.json(); 
 
    }); 
 
} 
 

 

 
functions() { 
 

 
    var minLength = this.loginDetailsArray.rules.username.minlength; 
 
    var maxLength = this.loginDetailsArray.rules.username.maxlength; 
 
    var pattern = this.loginDetailsArray.rules.username.pattern; 
 
    }

答えて

0

、あなたは呼び出しが完了したときのために3つの応答、データのための1、エラーの1 & 1を取得します。あなたはそれだけで実行したい場合は、正常な応答があった場合は、関係なく、あなたの応答のそれを実行したい場合は、からそれを実行

res => {} 

から、あなたの関数を呼び出すことができますいずれか

loadLoginDetails() { 
    this.customerService.getLoginDetails().subscribe(
     res => { 
      //Code if your response has data. 
     }, 
     error => { 
      //Code if your response has error. 
     }, 
     () => { 
      //Code when your request is finished. 
     } 
    ); 
} 

() => {} 

よろしくお願いいたします。

0

これがうまく動作する必要がありますか?あなたのサービスを消費すると

loadLoginDetails() { 

    this.customerService.getLoginDetails().subscribe(res => { 
    this.loginDetailsArray = res.json(); 
    this.functions(); 
    }); 
} 
+0

はい。 ngOnInitのloadLoginDetails()関数を渡してデータを取得しようとすると、定義されていないか、空です。なぜなら、データを取得する前に非同期であるため、関数ir()は、 –

関連する問題