gpt4 book ai didi

javascript - 在用户交互之前调用 Ionic recognizePopup then() 函数

转载 作者:行者123 更新时间:2023-11-27 23:52:17 25 4
gpt4 key购买 nike

或者至少,这就是我认为正在发生的事情。我有以下功能:

function checkExistingMember() {

var confirmPopup = $ionicPopup.confirm({
title: 'Existing Member?',
template: 'Are you an existing member?',
cancelText: 'No',
okText: 'Yes'
});

confirmPopup.then(function(res) {

if(res) {
// User is existing member
return true;
} else {
// User is NOT existing member
return false;
}

});

} // END checkExistingMember

然后我在 Controller 的最顶部调用它,如下所示:

var isExistingMember = checkExistingMember();
if (isExistingMember) {
console.log('Is existing member');
} else {
console.log('Is NOT existing member');
}

但是当它被调用时,控制台会在用户有机会回答之前打印出Is NOT Existing member。有人知道为什么会发生这种情况吗?

值得一提的是,如果我直接在 Controller 中调用 var informopup = $ionicPopup.confirm() { ...}confirmPopup.then(...)也就是说,如果我不将其抽象为函数,那么一切都会正常工作。

最佳答案

您需要了解不能仅从异步代码中返回。相反,您需要返回一个 promise 对象

function checkExistingMember() {

return $ionicPopup.confirm({
title: 'Existing Member?',
template: 'Are you an existing member?',
cancelText: 'No',
okText: 'Yes'
})
.then(function(res) {
if (res) {
// User is existing member
return true;
} else {
// User is NOT existing member
return false;
}
});

}

并使用其可链接的 api:

checkExistingMember().then(function(isExistingMember) {
if (isExistingMember) {
console.log('Is existing member');
} else {
console.log('Is NOT existing member');
}
});

关于javascript - 在用户交互之前调用 Ionic recognizePopup then() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32602974/

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