2016-11-03 21 views
3

私はAngular2 HTTP(観測可能な)方法を理解に苦労しています:ここでは、なぜ我々は、加入者の方法が必要なのか:Angular2

は私のコードです:

login(username:string,password:string) { 
    let headers = new Headers(); 

    this.createAuthorizationHeader(headers,username,password); 

    return this.http 
     .get(this.url,{headers:headers}) 
     .map(this.extractData) 
     .catch(this.handleError).subscribe(e => console.log(e)); 
} 

private extractData(res: Response) { 
    let body = res.json(); 
    console.log(body); 
    return body.data || { }; 
} 

私の質問です:私たちが加入し必要な理由メソッド、Observableのマップメソッドでデータとそれ以外のものをすべて抽出できる場合は?

ありがとうございました

答えて

2

HTTP呼び出しは、彼らが呼ばれた後すぐに終了しないことを意味し、非同期です。

subscribe方法は、2つのことを行います。

  1. それは始まり "コール(この場合には、それはHTTPリクエストを送信する)

  2. それはあなたがパラメータとして渡す関数を呼び出しますコールバックが完了した後、コールバック関数(コールバック関数)が返されます。

1

なしsubscribe()何も起こりません。 Observableは遅延待ちで、subscribe(),toPromise()、またはforEach()が呼び出されたときにのみ実行されます。

subscribe()に何もする必要はありません。ただ呼び出す必要があります。

return this.http.get(this.url,{headers:headers}) 
      .map(this.extractData) 
      .catch(this.handleError) 
      .subscribe(e => console.log(e)); 

または

return this.http.get(this.url,{headers:headers}) 
    .subscribe(this.extractData, this.handleError); 
関連する問題