Javascript 如何连接两个可观察对象?
我需要连接两个json观测值,因为它们最初是从另一个源分离出来的,所以这只是一个示例,因为我也在尝试理解rxJSJavascript 如何连接两个可观察对象?,javascript,json,rxjs,Javascript,Json,Rxjs,我需要连接两个json观测值,因为它们最初是从另一个源分离出来的,所以这只是一个示例,因为我也在尝试理解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", l
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实现这一点?使用:
注:
- 广泛使用的惯例是将
作为后缀添加到可观察名称中。e、 g.$
,obs$
list$
- 如果输入观测值的长度不相同。结果将取最短的长度。e、 g.
有3项,obs
有5项,那么可观察的结果将只发出3项,并跳过list
的最后2项list
x=>console.log(x[1].id)
或([x,y])=>console.log(y.id)
Observable.zip(obs, list).subscribe(([obsItem, listItem]) => console.log(obsItem, listItem));