【发布时间】:2016-02-19 03:55:34
【问题描述】:
我正在使用Rx.Observable.create() 创建一个异步可观察对象数组,并希望在它们完成时使用.toArray() 来获取所有值。
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 作为其他异步操作的替代,以保持示例简单。
【问题讨论】:
-
您不应链接到外部网站,除非它支持您问题中已有的信息。