Ajax звонки не выполнены в правильном порядке - PullRequest
1 голос
/ 02 мая 2020

У меня были подобные проблемы раньше: например:

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

, и перенаправление происходило до отправки почты пользователю. sendMailToUser() содержит AJAX вызов. Я решил проблему, поместив (success:redirect()) в Ajax вызове sendMailtoUser() вместо того, что было в коде выше.

Теперь у меня похожая проблема, но то же решение не работает:

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, но d ie ничего не меняет

1 Ответ

1 голос
/ 03 мая 2020

Похоже, что вы звоните deleteMember() сразу, когда вы должны предоставить его в качестве обратного вызова.

Попробуйте success: deleteMember, то есть без скобок.

Поочередно:

success: function() { deleteMember(); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...