gpt4 book ai didi

javascript - 如何在 Controller 上获取 $q promise 值

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

我正在使用来自 angularJS 的 $q 来获得 promise 。

我会检查 Controller 中的 promise 值以执行某些操作。

但我不知道如何得到它来比较它。

这是我在工厂方法中的做法:

AuthService.getActifUser = function () {
var deferred = $q.defer();
cognitoUser = userPool.getCurrentUser();
if (cognitoUser) {
cognitoUser.getSession(function(err, session) {
if (err) {
alert(err);
deferred.reject('failed to login');
} else {
deferred.resolve('logged in');
}
});
} else {
deferred.reject('not logged in');
}
return deferred.promise;
};

这就是我尝试在我的 Controller 中获取它的方式:

var res = AuthService.getActifUser();
console.log(res);
if (res != 'logged in') {
console.log(res);
routeService.goToView('/pages/login')
}

res 的日志告诉我:

Object { $$state: Object }

有人知道怎么做吗?

最佳答案

你不需要用 if 语句检查 res 你可以这样检查:

var res = AuthService.getActifUser();

res.then(function (response) {
console.log("logged successfully");

}, function (response) {
routeService.goToView('/pages/login')
});

第一个函数成功结果第二个失败,angular会自动识别结果

关于javascript - 如何在 Controller 上获取 $q promise 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43912946/

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