0
お互いに依存するいくつかの非同期呼び出しを行う必要があります。私は最初にコードを書いてPromise.all
を使用してasync
を段階的に作成しました。私はデータをループし、Promise.all()
に渡すために必要なアクションをすべて配列に入れるためにasync
メソッドを作成しました。これは正常に動作しますが、Observablesを使用して同じことをどうすればできますか。私はが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