gpt4 book ai didi

javascript - Angular js 验证函数在验证的 api 调用完成之前返回

转载 作者:行者123 更新时间:2023-11-28 07:17:55 24 4
gpt4 key购买 nike

                if (!validate()) {
return;
};


function validate() {
var nameIsValid = false;
var validationStatus = true;
dataApi.GetNameValid(viewModel.Name).then(function (data) {
nameIsValid = data.isValid;
validationStatus = checkValidInput(nameIsValid);
});
return validationStatus;
}

function checkValidInput(isValid)
{
if(!isValid){
return false;
}
//chk other input field validations
}

问题是 validate() 总是返回 true。如果我更改validationStatus = false 那么它总是返回 false。 GetNameValid 是 async false 仍然返回在 GetNameValid() 完成执行之前调用validationStatus,因此 checkValidInput 永远不会被调用,并且实际验证永远不会发生。 对于这种需要在函数返回之前等待 ajax 调用的场景,是否有另一种方法。任何指向正确方向的文章或博客都会有所帮助。谢谢

最佳答案

我认为你可以做的就是将另一个链接在一起,然后链接到你已经拥有的那个上,这样就可以实现你想要的功能。当然这还没有经过测试,但我认为它应该有效。

if (!validate()) {
return;
}


function validate() {
var nameIsValid = false;
var validationStatus = true;
dataApi.GetNameValid(viewModel.Name)
.then(function (data) {
nameIsValid = data.isValid;
validationStatus = checkValidInput(nameIsValid);
}).then(function(validationStatus){
return validationStatus;
});
}

function checkValidInput(isValid) {
if(!isValid) {
return false;
}
}

关于javascript - Angular js 验证函数在验证的 api 调用完成之前返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30647384/

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