我在 Angularjs Promise 中创建了一个应用程序,其中我调用一个方法,在该方法中将触发服务器调用,我放置了一个包含服务器调用的 Promise,完成后服务器调用执行将需要一些时间它将返回延迟对象,一切都很好,但 promise 在服务器调用完成之前返回
我在 JSFiddle 中模拟了类似的场景。
function getServerCall() {
var deferred = $q.defer();
setInterval(function () {
$scope.$apply(function () {
deferred.resolve({
"success": true
});
});
}, 3000);
return deferred.promise;
}
console.log(JSON.stringify(getServerCall().success));
if (getServerCall().success)
{
console.log('Success');
}
else{
console.log('Failed');
}
最佳答案
Promise 始终同步返回。你想要的(我认为)是处理已解决的 promise 。
因此,您需要使用 .then
(这是 Promise 上可用的方法):
getServerCall()
.then(function(result){
if (result.success) {
console.log("success");
} else {
console.log("failed")
}
});
关于javascript - Angular promise 在服务器调用完成之前返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438482/