2

在我的角度數據服務中,我試圖做出兩個http請求,第二個請求取決於來自第一個請求的數據。第一個請求工作正常,但由於某種原因,第二個請求永遠不會打到我的後端服務器。我希望如果有人能夠告訴我,如果我正確地做到了這一點,或者告訴我我做錯了什麼。角2連續http請求

@Injectable() 
export class DataService { 

    constructor(private http: Http) { } 

public twoRequest() { 
    this.http.get(`http://localhost:3000/1st_request`).subscribe((data) => 
     this.http.post(`http://localhost:3000/2nd_request`, {data: data})) 
} 

編輯:我沒有訂閱第二個請求。我不知道你必須訂閱你所做的每一個請求,即使他們在同一個代碼塊中也是如此

+0

的可能的複製[2角HTTP GET沒有得到(https://stackoverflow.com/questions/41381200/angular-2-http-get-not-getting) – Alex

+0

它有點不同因爲我正在同一個塊中進行兩個調用。我認爲這個問題對未來的其他人有用。 – xeroshogun

回答

3

你也需要subscribehttp.post也。如果您不要求subscribe,它永遠不會提出要求。

@Injectable() 
export class DataService { 

    constructor(private http: Http) { } 

    public twoRequest() { 
    this.http.get(`http://localhost:3000/1st_request`).subscribe((data) => 
     this.http.post(`http://localhost:3000/2nd_request`, {data: data}).subscribe(/*...*/)); 
} 
-1
public twoRequest() { 
     this.http.get(`http://localhost:3000/1st_request`).subscribe((data) => { 
      this.http.post(`http://localhost:3000/2nd_request`, {data:data})) 
       .subscribe((resp: any) => { 
       console.log(resp) 
      }) 
      } 

    } 
+0

沒有大括號的依賴,他沒有訂閱第二篇文章。正確指出@suren –