我想发送10个独立的请求,一个接着一个按顺序发送。并希望在数组中获得所有结果。我尝试过forkjoin
,但它并行地命中了所有请求。
对于并行请求
search(queryUrls) {
queryUrls.forEach((query) => {
observableBatch.push(this.http.post(query.url, query.data))
.pipe(
map((res) => res),
catchError(e => of('Error'))
);
});
//
return forkJoin(observableBatch);
}
我可以订阅这个方法,并且可以在一个数组中得到所有的结果。但如何才能按顺序发送所有请求呢?
您需要改用concat
。
concat将订阅first input Observable并发出其所有值,而不以任何方式改变或影响它们。当那个可观察到的东西完成时,它将订阅然后传递下一个可观察到的东西,并且再次发出它的值。这将被重复,直到操作员用完可观察的东西。当最后一个input Observable完成时,concat也将完成。
然后,如果希望将所有这些结果收集到数组中,则需要使用toArray
运算符折叠结果。
const batched = queryUrls.map(query => this.http.post(query.url, query.data))
concat(batched).pipe(toArray()).subscribe(allResults => /**/)
我的采样器是1)开始2)正在进行3)解析4)结束如果我将线程设置为1并开始测试它是按顺序运行的,而如果线程的编号大于1,它就像1-3-2-4一样随机运行 请帮忙。
我有一个javaScript代码,其中我发送了带有一些参数的http post。Post参数是一个类似于以下内容的json: 在JavaScript中,我只是打开request、设置头和发送参数。Post请求如下所示: 现在我需要在Java中进行相同的调用(由于一些内部POC需求)。为此,我做了以下几点: 但这给了我错误。 提前道谢。
很多时候我们需要在页面打开的时候,读取远程的内容,然后在当前页面显示. 这就需要用到 http请求了. vue页面调用http请求 vuejs 内置了对发送http请求的支持. 只需要在对应页面的script 标签内加上对应的代码就好. 例如: 我们新增一个页面,叫 "博客列表页" : src/components/BlogList.vue, 内容如下: <template> <div >
问题内容: 在Java中,如何编写HTTP请求消息并将其发送到HTTP WebServer? 问题答案: 你可以使用。 示例(从此处开始),进行了改进。包括在链接腐烂的情况下:
问题内容: 我有一个要按日期在Angular.js中排序的数组: 列表不正确。我认为日期格式是原因吗? 日期格式为: 问题答案: 为了正常工作,您需要使用控制器中的对象包装字符串日期。 例如:
问题内容: 似乎urllib2默认发送HTTP / 1.1请求? 问题答案: urllib2在后台使用httplib进行连接。您可以将其更改为http 1.0,如下所示。我已包含我的apache服务器访问日志,以显示http连接如何更改为1.0 码 访问日志