Jquery 如果条件为false/null,如何中止所有剩余函数

Jquery 如果条件为false/null,如何中止所有剩余函数,jquery,ajax,Jquery,Ajax,我的文件中运行了两个ajax脚本来检查用户是否存在,然后创建一个用户。目标只是在第一个ajax调用中检查用户是否存在,然后在第二个调用中创建用户(如果用户不存在) userCheck\u settings条件的这个ajax.done函数正确返回,并检查响应是否有null值,如果有,则返回false。但是,以下createUser函数仍在运行。是否可以中止所有剩余功能 function checkUser(responseToken) { $('.btn').click(func

我的文件中运行了两个ajax脚本来检查用户是否存在,然后创建一个用户。目标只是在第一个ajax调用中检查用户是否存在,然后在第二个调用中创建用户(如果用户不存在)

userCheck\u settings条件的这个ajax.done函数正确返回,并检查响应是否有null值,如果有,则返回false。但是,以下createUser函数仍在运行。是否可以中止所有剩余功能

function checkUser(responseToken) {

        $('.btn').click(function () {

            const Url = 'https://cors-anywhere.herokuapp.com/https://staging.micromerchantsystems.com/mmsgatewayapistaging/api/patient/search';

            var user_firstName = $("#first_name").val();
            var user_lastName = $("#last_name").val();
            var user_dob = $('#date_of_birth').val();

            const userCheck = {
                "RequestingClient": {
                    "ClientId": "***********",
                    "MemberId": "***********"
                },
                "Pharmacy": {
                    "IdentifierType": 2,
                    "Identifier": "5164086800"
                },
                "LastName": user_lastName,
                "FirstName": user_firstName,
                "DOB": "04/27/1901",
                "MobileNumber": "123456789",
            };

            var userCheck_string = JSON.stringify(userCheck);

            var userCheck_settings = {
                "async": true,
                "crossDomain": true,
                "url": Url,
                "method": "POST",
                "headers": {
                    "Content-Type": "application/json",
                    "Authorization": "Bearer " + responseToken,
                    "Accept": "*/*",
                },
                "data": userCheck_string
            }

            $.ajax(userCheck_settings).done(function (response) {

                if (response.Patients == null) {
                    console.log('Reponse is null! ' + response.Patients);
                    return false;
                    console.log('This does not show');
                } else {
                    console.log('Response is NOT null! Last Name is: ' + response.Patients[0].LastName);
                }

            });
        });
    }



function createUser(responseToken) {
        $('.btn').click(function () {
          console.log('I dont want this to run');
        });
    }

调用这两个函数(checkUser和createUser)时,将在具有.btn css类的元素上添加相同的单击事件侦听器:

$('.btn').click(function () {
     //...
}
我假设按钮上有css类,但不管怎样,当您单击该类时,每个单击事件处理程序中的两个代码块实际上同时执行。换句话说,不会直接调用checkUser和createUser函数本身,而是调用事件处理程序中的代码。如果您只想在不存在用户时创建用户,我建议从逻辑内部调用createUser函数,该逻辑告诉您用户不存在,如下所示:

// truncated for brevity .......
 $.ajax(userCheck_settings).done(function (response) {

            if (response.Patients == null) {
               //create user function call from here
               //I'm not sure what the responseToken parameter should be but this is just an example
                createUser(responseToken);
                return false;
                console.log('This does not show');
            } else {
                console.log('Response is NOT null! Last Name is: ' + response.Patients[0].LastName);
            }

        });
  //truncated for brevity .......

 //then the createUser function
 function createUser(responseToken) {
   //removed click event listener
   //write your code to create user here
}

请注意,应该从createUser函数中删除click事件处理程序

你在哪里调用这些函数?