javascript - 等待 get 请求完成

标签 javascript jquery

好吧,我正在做一些可以创建帐户的东西。我有这个函数来检查用户名是否存在,如果不存在则返回 false。

然后我有另一个函数调用它,但它会自动转到 else 语句,而不等待 get 请求完成。我怎样才能让它等到得到响应?

var accountPassword = "accToGetTix"

function checkUsername(username){
    $.get("http://www.roblox.com/UserCheck/DoesUsernameExist?username=" + username, function(data){
        $( document ).ready(function() {
            return data.sucess; // true = taken , false = not taken
        });
    });
};
function makeNewAccount(accountName){
    if (checkUsername(accountName) == false){
        signupWindow = window.open("http://www.roblox.com/login/signup.aspx");
        signupWindow.$("#SignupUsername").val(accountName)
        signupWindow.$("#SignupPassword").val(accountPassword)
        signupWindow.$("#SignupPasswordConfirm").val(accountPassword)
        signupWindow.$('#birthdayMonthSelect option[value="0"]').prop('selected', true)
        signupWindow.$('#birthdayDaySelect option[value="0"]').prop('selected', true)
        signupWindow.$('#birthdayYearSelect option[value="25"]').prop('selected', true)
        signupWindow.$('.gender-circle').click();
    } else {
        return true; // true = account taken , false = not taken
    }
}

makeNewAccount('asdf205m0');

最佳答案

您可以通过更新代码来实现此目的,如下所示

function checkUsername(username, callback) {
    $.get("http://www.roblox.com/UserCheck/DoesUsernameExist?username=" + username, function(data) {
        callback(data.sucess); // true = taken , false = not taken
    });
};


function makeNewAccount(accountName) {
    checkUsername(accountName, function(response) {
        if (response == false) {
            signupWindow = window.open("http://www.roblox.com/login/signup.aspx");
            signupWindow.$("#SignupUsername").val(accountName)
            signupWindow.$("#SignupPassword").val(accountPassword)
            signupWindow.$("#SignupPasswordConfirm").val(accountPassword)
            signupWindow.$('#birthdayMonthSelect option[value="0"]').prop('selected', true)
            signupWindow.$('#birthdayDaySelect option[value="0"]').prop('selected', true)
            signupWindow.$('#birthdayYearSelect option[value="25"]').prop('selected', true)
            signupWindow.$('.gender-circle').click();
        } else {
            return true; // true = account taken , false = not taken
        }

    });

}

关于javascript - 等待 get 请求完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081782/

相关文章:

php - 如何将 "version"查询字符串添加到网页静态资源的URL中?

javascript - 使用种子字符串在 mongoose 中创建 ObjectId

php ajax从数据库检索数据

jQuery 拖动选择,仅限于元素,而不是典型的拖动框

javascript - 当页面的预定部分出现时,如何使滚动到顶部按钮出现?

javascript - 使用来自 ajax 调用的数据而不使用异步 : false

javascript - model.predict 在使用 TensorflowJS 时不是一个函数

javascript - 改进工具提示代码

jquery - 将 "Back to top"图标置顶

jQuery 绑定(bind)鼠标滚轮