0
我想一起執行兩個語句,但不是異步執行。有沒有辦法在angular2之前function 2
之前執行function 1
?angular2異步函數執行
我想一起執行兩個語句,但不是異步執行。有沒有辦法在angular2之前function 2
之前執行function 1
?angular2異步函數執行
我們可能需要更多的信息,但假設你有2個http調用,並且你想讓它們「同步」(一個是第一個,然後是第二個)。 我會建議使用ReactiveX JavaScript,您可以通過包括導入:
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/mergeMap';
隨着mergeMap操作符,你可以開始了「第二個任務」(新observable)作爲輸入的第一個的結果。
因此,例如,我需要檢查地址,然後再更新我的用戶配置文件。我有2個http調用;一個是地址檢查,另一個用於更新用戶的個人資料,所以我會做:
this.http.get(geolocationGoogleUrl, this._customAddress)
.mergeMap((location: any)=>{ // First http response
console.log(location);
// Do your stuff before second call
return this.http.patch(patchUrl, localAddress); // Use frist http response as input
}).subscribe((updatedUser)=>{ // Second http response
this._user = updatedUser;
});
當你注意到了,你需要申請一個可觀察的,以觸發呼叫。
請張貼演示您嘗試完成的代碼,您嘗試過的以及失敗的位置。你的問題沒有提供足夠的信息。 –