Node.js RxJs-当您要发出的请求数量可变时,如何实现并行HTTP请求
我正在使用Express开发Node.js API,使用Node rest客户端模块发出http请求 要开发的API端点之一是Node.js RxJs-当您要发出的请求数量可变时,如何实现并行HTTP请求,node.js,express,rxjs,reactive-programming,Node.js,Express,Rxjs,Reactive Programming,我正在使用Express开发Node.js API,使用Node rest客户端模块发出http请求 要开发的API端点之一是/API/v1/users/:userId,它返回用户的完整信息、用户信息以及他所属部门的详细信息 要获取信息,请使用以下后端REST服务: /users/:userId-返回包含用户信息和部门ID列表的JSON对象,例如: { "name" : "xxx", "departments" : [1, 5 ,6, 8] } /departments/:departme
/API/v1/users/:userId
,它返回用户的完整信息、用户信息以及他所属部门的详细信息
要获取信息,请使用以下后端REST服务:
/users/:userId
-返回包含用户信息和部门ID列表的JSON对象,例如:
{ "name" : "xxx",
"departments" : [1, 5 ,6, 8]
}
/departments/:departmentId
-JSON对象和department信息
{
"id" : x,
"name" : "xxx"
}
调用/api/v1/users/1
需要调用
GET/user/1
->{“name”:“user1”,“departments”:[1,5,7,8]}
/departments/departmentID
Rx.Observable.zip()
就足够了
问题是,如果我有一个大小不固定的Observable数组,代表每个HTTP请求调用,那么我如何调用Observable.zip()
如果数组中元素的数量固定,我会这样做:
var observables = [ obs1, obs2 ];
Rx.Observable.zip( observables[0], observable[1], function(...){...});
但是我不知道有多少个可观察对象,所以我如何调用zip()?您可以使用es6中的
…
操作符
var observables = [obs1, obs2, obs3, ..., obsx];
Rx.Observable.zip(...observables, function() {});
另一种方法是使用
forkJoin
,它可以作为array
Rx.Observable.forkJoin([obs1,…,obsN]).subscribe(…)代码>也许可以将可观测数据与?酷!我要试试看