0
我需要進行多個依賴於對方的異步調用。我最初編寫代碼並使用Promise.all
分步製作async
。我繞過了我的數據並創建了一個async
方法,以便將所有需要的操作放入一個數組中傳遞到Promise.all()
。這工作正常,但我怎麼能使用Observables來做同樣的事情。我讀過forkJoin
相當於Promise.all
,但是如何循環訪問數據幷包裝我的async
函數,然後在執行之前執行它,然後轉到下一個flatMap
?將Promise.all轉換爲Observable
public getMonthly(){
return this.http.get(url)
.flatMap(response => {
// need to convert this?
let actions = response.json().map(this.asyncMonthlyRecord);
return Promise.all(actions);
})
.flatMap(()=> this.queryMonthly())
.map(this.convertFromSQl)
.catch((error:any)=> Observable.throw(error || 'Server Error'));
}
private asyncMonthlyRecord = (record):Promise<any> => {
return this.setUsage(record,'HILowMonthly');
}
private queryMonthly(){
return this.storage.query('SELECT * FROM HILowMonthly')
}
getMonthly().subscribe(x => console.info(x)); // logs data from SQLite perfectly...
爲什麼要投票? – inspired