gpt4 book ai didi

javascript - 在 AngularJS 中使用 Promises 的 $http 调用的条件链接

转载 作者:搜寻专家 更新时间:2023-11-01 04:48:29 25 4
gpt4 key购买 nike

我必须依次执行三个不同的 $http 调用,它们相互依赖。到目前为止,我的工作解决方案是这样的:

$http.get(".../1/...").success(function() {
$http.get(".../2/...").success(function() {
$http.get(".../3/...").success(function() {

});
});
});

现在需要做一些更改:如果条件为真,则应跳过第一个调用。我可以这样做:

if (skipCallOne) {
$http.get(".../2/...").success(function() {
$http.get(".../3/...").success(function() {

});
});
}
else {
$http.get(".../1/...").success(function() {
$http.get(".../2/...").success(function() {
$http.get(".../3/...").success(function() {

});
});
});
}

这显然会导致大量代码复制。如果我对特定的 $http 调用使用适当的函数,我发现这可以减少。但据我所知,更好的解决方案是使用 $http-promises 并正确链接它们,如下所示:

$http.get(".../1/...").then(function() {
return $http.get(".../2/...");
}).then(function() {
return $http.get(".../3/...");
}).then(function() {

});

但现在我的问题是,如何有条件地跳过代码复制最少的第一次调用?

最佳答案

你可以试试这个方法:

$q.when(skipCallOne || $http.get(".../1/..."))
.then(function() {
return $http.get(".../2/...");
}).then(function() {
return $http.get(".../3/...");
}).then(function() {
});

关于javascript - 在 AngularJS 中使用 Promises 的 $http 调用的条件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30056693/

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