Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有更好的方法来;加入;数据使用地平线?_Javascript_Rxjs_Rethinkdb_Horizon - Fatal编程技术网

Javascript 有没有更好的方法来;加入;数据使用地平线?

Javascript 有没有更好的方法来;加入;数据使用地平线?,javascript,rxjs,rethinkdb,horizon,Javascript,Rxjs,Rethinkdb,Horizon,我的数据在数据库中显示如下: [预约] { id:1, 日期:“2016-01-01”, 类型:1, } [造型师] { id:1, 姓名:“苏”, } 在客户端上,我希望获取一个约会,并将设计师嵌入到约会对象中,如下所示: { id:1, 日期:“2016-01-01”, 造型师:{ id:1, 姓名:“苏”, } } 我可以使用此查询实现一些接近的结果: 返回此.hz(“约会”) .find(任命ID) .fetch() .toPromise() 。然后(预约=>{ 返回此.hz('st

我的数据在数据库中显示如下:

[预约]
{
id:1,
日期:“2016-01-01”,
类型:1,
}
[造型师]
{
id:1,
姓名:“苏”,
}
在客户端上,我希望获取一个约会,并将设计师嵌入到约会对象中,如下所示:

{
id:1,
日期:“2016-01-01”,
造型师:{
id:1,
姓名:“苏”,
}
}
我可以使用此查询实现一些接近的结果:

返回此.hz(“约会”)
.find(任命ID)
.fetch()
.toPromise()
。然后(预约=>{
返回此.hz('stylests').find(appointment.stylestId)
.fetch()
.toPromise()
。然后(造型师=>{
appointment.stylest=设计师;
回程预约;
});
})
.然后(约会=>this.appointment=约会);

我想知道是否有更干净的方法来达到预期的效果。我知道RejectDB支持联接,但它看起来不像是在Horizon中公开的。我对RxJS也不是很好,所以我想知道是否可以在那里更干净地完成连接。

尝试
mergeMap
map
组合

const appointmentFind$ = (appointmentId) => hz('appointments').find(appointmentId).fetch();
const stylistFind$ = (stylistId) => hz('stylists').find(stylistId).fetch();

appointmentFind$(appointmentId)
  .mergeMap((appointment) => stylistFind$(appointment.stylistId)
    .map((stylist) => ({ ...appointment, stylist })))
  .subscribe((x) => console.log(x));
我写在这里,所以它没有经过测试,但它应该像这样工作