gpt4 book ai didi

javascript - 嵌套http.request AngularJS后同时显示数据

转载 作者:可可西里 更新时间:2023-11-01 17:05:31 26 4
gpt4 key购买 nike

我有一个关于像这样嵌套的多个 http 请求的问题:

  $http({
method: 'jsonp',
url: 'URL1',
}).then(function (response) {
// Response result 1
// nested http request --> after first http success
$http({
method: 'jsonp',
url: 'URL2'
}).then(function (response) {
// Response result 2

}, function Error(response) {
$scope.users = response.statusText;

}).finally(function () {
$scope.loading = false;

});
});
};

有没有办法在 View 上同时显示两个结果?当我添加 $scope.data.length 以确定显示按钮 if length is > 1 时,按钮出现在任何数据之前。我想同时显示来自两个成功的数据。这可能吗?

我读过有关 $q 的内容,但是这会在此处起作用并在两个结果数据可用的同时呈现 View 吗?

PS:我知道在 Controller 中添加 http 请求是不好的做法,但这只是为了测试。

最佳答案

我推荐使用 promise 链。也使用 catch 方法,它应该提高代码的可读性。

$http({ method: 'jsonp', url: 'URL1'})
.then(function (firstResult) {
//save firstResult
return $http({ method: 'jsonp', url: 'URL2'})
})
// this then will be called only if first one succeeds
.then(function (secondResult) {
//save secondResult - display data if this is available
})
.catch(function Error(response) {
// catch errors form both requests
$scope.users = response.statusText;
})
.finally(function () {
$scope.loading = false;
})
};

关于javascript - 嵌套http.request AngularJS后同时显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46524912/

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