2016-12-12 243 views
0

首先,我最近在幾年的間隔後重新開始了Web開發。我做了有點與angularjs一起工作,但現在我切換到Angular2。等待函數返回異步js

我的問題是我如何處理異步JS?我見過很多示威和文章,但他們似乎從未適用於我的情況。現在,我從API獲取信息,將數據轉換爲可用數組,然後根據該數組進行一些計算(將其視爲兩個函數,一個接一個地)。我該如何處理這個問題,特別是在角度2的世界?

createArray(){ 
// Getting data from api (from service) 
// Creating an array 
// Returning array 
} 

calculations(){ 
// Doing calculations on the returned array 
} 

如何獲得計算以等待createArray?

+1

只有在得到服務器的響應後才調用'calculate()'。 –

+0

您閱讀的文章最有可能適用。您應該將學到的知識應用到代碼上。 –

+0

如果你正在尋找某人告訴你如何簡單地返回數組,它就不會發生。我們知道你希望能夠做什麼,但你不能那麼做。 –

回答

0

有實現這一目標的多種方式,

下面使用RxJS,

// Returns an observable 
createArray(){ 
// Getting data from api (from service) 
// Creating an array 
// Returning array 

// Assuming you are using Angular 2 http service 
return this.http.get('URL', <options>) 
    .map(result => { 
     // Create Array here using result 
     // Call 
    }) 
} 

calculations(someArray){ 
// Doing calculations on the returned array 
} 

// Use the methods 
someOtherMethod(){ 
    this.createArray() 
     .map(res => this.calculations) 
     .subscribe(res => { 
     // result after performing calculations on Array from createArray. 
     }) 
} 

您也可以使用這個承諾。

希望這有助於!