我有两个json observables我需要加入,因为它们最初与另一个源分开,所以这只是一个例子,因为我也试图理解rxJS。
var obs = Rx.Observable.from([
{ id: "1", url: "whatever.jpg"},
{ id: "2", url: "whatever2.jpg"},
{ id: "3", url: "whatever3.jpg"}
])
var list = Rx.Observable.from([
{ first: "Gary", last: "Simon", age: "34"},
{ first: "Jane", last: "Simon", age: "34"},
{ first: "Juan", last: "Simon", age: "34"}
])
// I tried this
var newObs = Rx.Observable.merge(list,obs)
// and this
var newObs = Rx.Observable.forkJoin(list,obs)
重点是我需要一个看起来大致如此的新json:
[{
"first": "Gary",
"last": "Simon",
"age": "34"
},
{
"id": "1",
"url": "whatever.jpg"
}]
我应该如何使用RxJS?
答案 0 :(得分:2)
使用zip
:
Observable.zip(obs, list).subscribe(([obsItem, listItem]) => console.log(obsItem, listItem));
注意:
$
添加为可观察名称的后缀。例如obs$
,list$
obs
有3个项目,list
有5个项目,则结果可观察结果只会发出3个项目并跳过list
的最后2个项目。