gpt4 book ai didi

AngularJS 同步调用

转载 作者:可可西里 更新时间:2023-11-01 17:07:35 25 4
gpt4 key购买 nike

在易于理解的伪代码中,我在 AngluarJS 中有这个。当我们有 c 时,它应该做 a 或 b 或两者。我现在遇到的问题是调用是异步调用的,我的数据被搞砸了。

if(a || c) {
$http.get("path1");
}
if(b || c) {
$http.get("path2");
}

如您所见,由于 if 语句,我无法将第二个 GET 放入第一个调用的 .succes 方法中。我可以摆弄一个函数,其中第二个 get 是监听的,但我认为应该有一个正确的方法来做到这一点。

最佳答案

您可以只持有可能从第一个 a || 返回的 promise 对象c 检查ajax。如果满足/不满足 $q.when 将通过检查 promise 值来解决 promise 。

使用 $q.when 的原因是,如果 promise 未定义,那么 $q.when.then 函数也会执行解决 promise 。 Example Fiddle

如果 promise 有 promise 对象,那么它会等到 promise 得到解决。

代码

var promise;
if(a || c) {
promise = $http.get("path1");
}
$q.when(promise).then(function(response){
if(b || c) {
promise = $http.get("path2");
}
}, function(error){
//error
});

关于AngularJS 同步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710264/

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