我有一個Observable1 API每次拿回來的資料都是一個Object Array,我只取第一次first()
拿回來後,我想要依據Array element的key property,再去query另一個Observable2 (一樣拿first)
最後組成一個Object Array,其中的
Object {
property1, // (From Observable 1)
property2, // (From Observable 1)
property3, // (From Observable 1)
propertyX // (From Observable 2)
}
寫了一個範例,但一直跑不出我要的結果
https://jsfiddle.net/g5pj065m/82/
請問要怎麼取出Observable2的數值?
1個讚
關於switchMap是要return Observable的,
https://jsfiddle.net/g0mmaLft/
以上給你參考一下,可能有更好的寫法
switchMap/mergeMap/concatMap 的第二個參數可以讓你做 map 的動作,可以在那邊做組合的行為
var o1 = Rx.Observable.of([{a:'p',b:2}, {a:'q',b:4}]).delay(2500);
var o2 = Rx.Observable.of({p:true,q:false}).delay(1500);
o1.first().switchMap(arrayData=>{
return arrayData.map(element=>{
element.c = o2.first(); //想把p得值加進去
return element;
}, (fromO1, fromO2)=>{...} );
4個讚