gpt4 book ai didi

javascript - 同时多次调用同一服务

转载 作者:行者123 更新时间:2023-12-03 07:23:51 27 4
gpt4 key购买 nike

我有一个 $http 服务(或工厂)。

angular.module("app")
.factory("PriceService", function ($http) {
return {
get: function (item) {
var url = "/pricing";

return $http.post(url, item);
}
}
});

我正在读取 Excel 文件中的项目。每个项目都会调用该服务一次。

for (item in excelItems) {
console.time(item.referenceId);
PriceService.get(item).then(function(response) {
console.timeEnd(item.referenceId);
// process result
}, function() {
// error
})
}

for 循环立即完成,因此所有项目应该几乎同时调用 PriceService。然而,这些项目似乎正在陆续调用该服务。请查看控制台时间结果(左列是refereceId)。

    3: 2283.264ms
5: 3167.943ms
2: 3327.372ms
11: 3767.073ms
12: 3849.267ms
14: 5388.853ms
8: 15996.263ms
16: 16636.952ms
4: 17689.306ms
18: 18190.733ms
15: 19323.512ms
20: 20009.020ms
13: 23326.644ms
10: 23378.259ms
22: 24077.294ms
24: 24568.147ms
total: 24570.348ms

有什么办法可以改善这个问题吗?非常感谢!

最佳答案

您可以使用不同的方法。如果每个请求都是幂等的,您可以通过以下方式使用 $q 模块:

var promises = [];
for (item in excelItems) {
promises.push(PriceService.get(item));
}
$q.all(promises).then(function(results){
//Ok
}, function(error){
console.log(error);
});

关于javascript - 同时多次调用同一服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36088180/

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