Nested Observable 怎麼取內部的值?

我有一個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個讚