gpt4 book ai didi

javascript - AngularJS promise 不起作用

转载 作者:行者123 更新时间:2023-11-29 19:28:44 25 4
gpt4 key购买 nike

我有一个 promise ,在应用程序启动期间运行时不会出现问题,例如

myPromise
.success( function(data) { $scope.myvariable = data })
.error( function(msg, code) { console.log("msg: " + msg + "\nCode" + code) });

但是,如果我尝试动态运行 promise ,假设单击按钮时,(1) promise 成功执行,但我的所有变量均未更新。

运行 apply 或 digest 只会产生以下错误:$digest already in progress

$scope.getContent = function() {
myPromise
.success( function(data) {
$scope.myVariable = data; //THIS WORKS
console.log(data); //THIS WORKS
})
}
//Running the below code afterwards still produces a null value
console.log($scope.myVariable);

最佳答案

这就是我们所说的异步世界。

当您等待您的 promise 的回调时,声明 console.log($scope.myVariable); 已经执行但您仍然没有任何值(value)。

在这种情况下,如果你想在外部获取它的值,你可以使用 $watch。

$scope.$watch('myVariable',funciton(newVal){
console.log(newVal);
});

小细节:-

myPromise 被调用并等待响应,同时语句 console.log($scope.myVariable); 在它执行后显然没有任何值(value) $scope.myVariable inside它(没有人给它 :-P)。因此,当响应返回时,它会调用成功或错误方法并将值初始化为变量 $scope.myVariable 并打印它。

关于javascript - AngularJS promise 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29485740/

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