Функция выполняется раньше другой (AJAX, jQuery) [дубликат]

116
12 августа 2019, 20:30

На данный вопрос уже ответили:

  • Как вернуть значение из события или из функции обратного вызова? Или хотя бы дождаться их окончания 3 ответа

Есть функция, но почему-то $.get выполняется раньше чем writeMeSubmit. Я это понял, потому что в writeMeSubmit лежит запись в файл, а ниже - чтение из файла, и чтение выполняется как бы на шаг назад, т.е при первом клике данные те же, при втором клике опять первые, а при третьем - вторые и т.д. Что вообще может быть не так? почему вторая функция выполняется раньше первой?

$('.send').on ( 'click',
function() {
 writeMeSubmit($('.send_form'));
$.get("../action/chat_send.php?message="+$('.text').val(), function(){ 
        $('.text').val('');
        refresh_chat();         
    });
} 
);

код функции writeMeSubmit:

function writeMeSubmit(form){
var formData = new FormData();

jQuery.each($('#file_v')[0].files, function(i, file) {
    formData.append('file_v', file);
});

$.ajax({
    url: "../action/ajax_form.php",
    type: "POST",
    dataType : "json", 
    cache: false,
    contentType: false,
    processData: false,         
    data: formData, 
    success: function(data){
        return;
    }
});
return false;   

}

Answer 1
function writeMeSubmit(form, cb) {
  var formData = new FormData();
  jQuery.each($('#file_v')[0].files, function(i, file) {
    formData.append('file_v', file);
  });
  $.ajax({
    url: "../action/ajax_form.php",
    type: "POST",
    dataType : "json", 
    cache: false,
    contentType: false,
    processData: false,         
    data: formData, 
    success: function(data){
      cb();
    }
  });
}
$('.send').on( 'click', function() {
  writeMeSubmit($('.send_form'), function() {
    $.get("../action/chat_send.php?message="+$('.text').val(), function(){ 
      $('.text').val('');
      refresh_chat();         
    });
  });
  return false;
});
READ ALSO
Функция поиска из таблицы

Функция поиска из таблицы

Как реализовать поиск(функцию) по полю Mo_id чтобы не все данные отображались в таблице, а только то, что ищемВ данном случае у меня отображаются...

113
Элементы карусели не помещаются в div

Элементы карусели не помещаются в div

Всем привет! Ситуация следующая: пользуюсь MaterializeCSS Хочу сделать карусель из карточекВ принципе, все работает, но есть проблема: сами карточки...

127
Jquery - порядок вставки элементов

Jquery - порядок вставки элементов

Почему </details> вставляется раньше чем user?

110
Запуск 1 экземпляра программы на каждого пользователя

Запуск 1 экземпляра программы на каждого пользователя

Представим терминал, на нем сидит n-ое кол-во пользователейКак сделать так, что бы каждый пользователь мог запустить 1 экземпляр программы?

94