1
我試圖在承諾中創建的流上運行reduce
。在下例中,myApi.getItemsAsync()
返回數組。來自RxJS承諾的流
我期望reduce
回調被調用與數組中的每個單獨的項目。相反,它被整個數組調用。
Rx.Observable.fromPromise(
myApi.getItemsAsync()
)
.reduce(function (acc, item) {
// expecting `item` to be a single item
// instead, seeing the entire array
}, [])
.subscribe(function (result) {
console.log(result);
});
如果myApi.getItemsAsync()
是它返回一個陣列的同步功能,減少按預期方式工作,調用與所述陣列中的每個項中的回調。
我如何得到這個與承諾一起工作?
可以簡化'flatMap',因爲它會隱式處理數組,你不需要'fromArray' – paulpdaniels
@paulpdaniels:是的,我懷疑這樣的事情。但我更喜歡明確的方式:-) – Bergi
這個解決方案相對於返回數組(不是Rx的'reduce',而是'Array.prototype.reduce')上的簡單'reduce'有什麼優點嗎?我認爲值得考慮,直到Rx在做這種簡單的事情時有明顯的過載。 –