我想对数组的每个元素执行异步操作,并在字典中收集结果。我目前的做法是:
let asyncOp = () => Rx.Observable.interval(300).take(1);
let dict = {};
Rx.Observable.from(['a', 'b'])
.mergeMap(el => asyncOp()
.map(asyncOpRes => dict[el] = asyncOpRes)
.do(state => console.log('dict state: ', dict))
)
.takeLast(2)
.take(1)
.map(() => dict)
.subscribe(res => console.log('dict result: ', res));

<script src="https://npmcdn.com/@reactivex/rxjs@5.0.0-beta.7/dist/global/Rx.umd.js"></script>
&#13;
基本上这就像我想要的那样,但它似乎是对RxJs运算符的一种尴尬用法。所以我需要以下方面的帮助:
我想我错过了一个RxJS操作符,它帮助我简化了这个操作。