gpt4 book ai didi

javascript - 循环内的连续 http 请求

转载 作者:行者123 更新时间:2023-11-28 14:11:02 24 4
gpt4 key购买 nike

在我的 AngularJS 应用程序中,我可以顺序执行不同数量的 http 请求。我认为我需要一个循环来实现此目的:

for (let i = 0; i < $scope.entities.length; i++) {
MyService.createFixedValue($scope.id, $scope.entities[i]);
}

其中 MyService.createFixedValue 是 http POST 请求:

service.createFixedValue = function(property_id, fixed_value_entity){
return $http({
method: 'POST',
url: '/my_url'
headers: {
'Content-Type': 'application/json'
},
data: fixed_value_entity
});
}

但在这种情况下我的请求是异步的。我需要做哪些更改才能获得顺序请求?

最佳答案

顺序请求(不推荐)

使用for...ofasync / await创建 HTTPRequest 的顺序循环。

构建一个async函数,如下例所示。

async function createFixedValues(id, entities) {
for (const entity of entities) {
await MyService.createFixedValue(id, entity);
}
}

并通过注入(inject) $scope 属性来调用它。

createFixedValues($scope.id, $scope.entities);

单个请求并发送数组(推荐)

在单个 HTTPRequest 中发送整个数组比为每个实体发送请求会更容易。结果是一样的,但单个请求会更有效。

service.createFixedValue = function(property_id, fixed_value_entities) {
return $http({
method: 'POST',
url: '/my_url'
headers: {
'Content-Type': 'application/json'
},
data: fixed_value_entities
});
}

将整个 $scope.entities 数组作为第二个参数。

MyService.createFixedValue($scope.id, $scope.entities);

您必须修改请求的服务器端,因为您现在发送的是数组而不是单个值。但您尚未指定如何处理服务器端响应,因此这取决于您。

关于javascript - 循环内的连续 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59439310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com