我使用Rx.Observable.create()
創建了一個異步觀察數組,並希望在完成時使用.toArray()
來獲取所有值。RxJS - 如何使用toArray()和異步observables數組?
console.log('running');
let valsArray = ['a','b','c'].map((val,i)=>{
return Rx.Observable.create((obs)=>{
let tid = setTimeout(()=>{
console.log(val + ' timing out');
obs.onNext(val);
},i*500);
return()=>{
clearTimeout(tid);
};
}).publish().refCount();
});
Rx.Observable.from(valsArray)
.flatMap((v)=>v)
.toArray()
.subscribe((arr)=>{
console.log("arr should be ['a','b','c']",arr);
});
上面的例子在http://jsbin.com/wegoha/10/edit?js,console。
使用setTimeout
作爲其他異步操作的替身,以保持示例簡單。
除非它支持您的問題中已有的信息,否則您不應鏈接到外部網站。 – Enigmativity