我有以下伪代码
objects = [obj1, obj2, obj3]
for obj in objects {
user: http.get(obj1.user_id)
product: http.get(obj1.product_id)
}.subscribe(results => {
do something with results
})
我想要的是,我循环遍历一个对象数组,每个对象都获得相关的用户和产品,然后订阅用户和产品。我怎么能那样做?
您可以使用zip()
运算符来组合您的请求,并在每个请求完成后执行一些代码:
const sourceOne = http.get(obj1.product_id);
const sourceTwo = http.get(obj2.product_id);
zip(sourceOne, sourceTwo).subscribe(val => {
// do something
});
您可以使用RxJSforkJoin
以及Array#map
来并行触发多个观测值。
const objects = [obj1, obj2, obj3];
forkJoin(
objects.map(obj => // <-- `Array#map` function
forkJoin({
user: http.get(obj.user_id)
product: http.get(obj.product_id)
})
)
).subscribe({
next: (res) => {
console.log(res);
// use `res`
},
error: (err) => {}
});
/*
output in subscription:
[
{
user: result from `http.get(obj1.user_id)`,
product: result from `http.get(obj1.product_id)`,
},
{
user: result from `http.get(obj2.user_id)`,
product: result from `http.get(obj2.product_id)`,
},
{
user: result from `http.get(obj3.user_id)`,
product: result from `http.get(obj3.product_id)`,
}
]
*/
我想知道你对这个概念的看法/意见。如果有替代方案?这是否可行/有益? 据我所知,对于每个http请求,服务器都会执行一些操作并返回http响应。 现在考虑任何场景,我们希望对服务器上运行的进程有更多的控制。 情景1:http请求发送- 在这里,资源被浪费了。 情况2:http请求发送- 在这里,客户端不知道服务器中运行的进程的状态。客户端必须等待,直到它获得超文本传输协议响应。 我的想法是:在初始
我只是有一个关于服务中http请求的结构和处理响应的问题。我正在使用Angular2。alpha46 Typescript(刚刚开始测试-我喜欢它…Ps…。感谢所有一直致力于它并通过github作出贡献的人) 因此,采取以下措施: 登录表单。组成部分ts 从这个组件中,我导入了我的userService,它将容纳我的超文本传输协议请求,以登录用户。 使用者服务ts 我想做的是能够处理http请求之
我正在使用GWT和Spring controller来管理http流量。有些请求可能需要很长时间,但我希望在超过给定时间时终止请求。 我如何配置超时Spring。我也使用Apache Tomcat 7.0。我试图在tomcat上inrease最大线程,但有一段时间tomcat工作缓慢,因为请求线程不会死。
我有专有的基于http的API要从JMeter测试。不幸的是,API的一些endpoint希望http DELETE方法带有请求体(我知道它的API设计有问题,使用DELETE with request body,但我无法更改该API,需要对其进行测试)。 如何从JMeter测试它?似乎标准的HttpRequest采样器在没有任何警告的情况下默默忽略了我的身体有效载荷。(当我在《邮递员》中尝试它时
我用Go编写了一个简单的服务器: 以及一个用Python编写的用于测试的简单客户端。以下是代码: 每次客户端访问服务器时,服务器都会产生这个错误: 我知道如何在Go中处理JSON Post请求 Python版本==3.4 Go版本==1.7 先谢谢你。
这些天我正在学习如何使用谷歌排球。快速联网非常方便。似乎所有的请求都在Volley的后台运行。例如: 使用上面的代码,我们可以进行一个在后台运行的POST调用(非阻塞方式)。现在我的问题是:是否有可能以阻塞的方式进行POST呼叫?为什么我需要阻塞方式来进行REST呼叫?因为有些电话,比如签到,应该在做其他事情之前完成。 谢谢