[英]Async Observable method inside of a map method
什么是轉換數組並在內部調用少量可觀察方法的最佳方法?
我正在尋找的是這種類型的東西可以工作:
resultArray = someArray.map(item => {
oneObs.subscribe(result1 => {
item.result1 = result1
});
secondObs.subscribe(result2 => {
item.result2 = result2
});
});
最好的方法是什么? 我只想出一種解決方法來使用這種forEach循環:
someArray.forEach(item => {
Observable.forkJoin([oneObs, secondObs]).subscribe(
(results: [Result1Type, Result2Type]) => {
item.result1 = results[0];
item.result2 = results[1];
resultArray.push(item);
});
});
任何幫助表示贊賞。
您嘗試混合同步和異步代碼,這可能會導致某些奇怪的行為。 我的建議是將數組轉換為可觀察的數組(使數組異步)以獲取結果,然后將完成的結果再次轉換為數組:
Observable.from(someArray) // 1
.mergeMap(item => Observable.forkJoin(oneObs, twoObs)
.map(results => {
item.result1 = results[0];
item.result2 = results[1];
return item;
}))
.toArray() // 2
.subscribe(arr => resultArray = arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.