未按正确顺序执行Ajax调用

问题描述 投票:1回答:1

我之前有类似的问题:例如:

{
sendMailToAdmin();
sendMailToUser();
redirect();
}

并且重定向将在发送给用户的邮件之前发生。sendMailToUser()包含一个AJAX调用。我通过将(success:redirect())放在sendMailtoUser()的Ajax调用中而不是在上面的代码中的位置来解决了这个问题。

现在我有一个类似的问题,但是相同的解决方案不起作用:

function sendDeletionMailToMember()
        {
            var data = "userEmail=" + "<?php echo $_SESSION['user'];?>";            
            $.ajax({
                dataType: 'json',
                url: 'stcg-json-responses.php?fct=sendDeletionMailToMember',
                data: data,
                cache: false,
                success: deleteMember()
            });
        };

电子邮件应包含数据库中的某些用户数据。发送邮件后,将调用success: deleteMember()删除所有用户数据。执行顺序很重要,因为一旦执行了deleteMember(),就无法再将数据库中的数据添加到邮件中。

无论如何发送邮件,都会删除用户,但是邮件中我需要从数据库提取到邮件中的数据丢失。似乎deleteMember()执行得太快。我尝试过async:false,但它不会改变任何东西

javascript ajax
1个回答
1
投票

当您将其作为回调提供时,似乎正在立即调用deleteMember()

尝试success: deleteMember,即不带括号。

或者:

success: function() { deleteMember(); }
© www.soinside.com 2019 - 2024. All rights reserved.