0
目标:在每个请求返回后,使用RxJS和fire回调并行运行多个异步http请求。RxJS:在每次并行http请求返回时更新客户端
例如:
getSomeData() {
Observable.forkJoin(
this.http.get('/somethingOne.json').map((res:Response) => res.json()),
this.http.get('/somethingTwo.json').map((res:Response) => res.json())
).subscribe(
data => {
this.somethingOne = data[0]
this.somethingTwo = data[1]
},
err => console.error(err)
);
}
上面的代码将并行运行http.get请求和映射到JSON的响应,但在每个HTTP响应欲予产生的函数被调用。有没有办法将回调函数传递给传递给forkJoin方法的http请求?
我相信会工作,我只是觉得RxJS带有专门为此设计的方法。例如。有实例方法,如do,doOnNext,filter..etc,看起来像他们都会工作。不幸的是,我无法找到任何关于使用这种类型的功能的正确方法的文档。 – user2263572
'do'操作符更多用于执行副作用('do'不允许您返回流中的任何值)。否则,'正确'的功能就是一个简单的地图(回调),我没有看到你称之为'这种类型的功能'。或者你的意思是你不想为每个请求写'map(callback)'? – user3743222
实际的预期目的是将其与一系列帖子请求一起使用。在每个请求完成后,我想在应用程序的前端提供一个通知,但实际上我不需要对响应对象做任何事情。例如,并行发出10个帖子请求,每完成一个更新前的完成百分比(10%,20%,30%...等) – user2263572