Я использую Загрузчик файлов Plupload в форме.Я хочу настроить его так, чтобы при отправке формы, то есть при нажатии кнопки «Отправить», первое, что происходит, - это загрузка файла с последующей отправкой формы.
Из того, что ямогу сказать, и я могу ошибаться, но кажется, что uploader.start()
- это асинхронный вызов функции.Таким образом, в данный момент загрузка начнется, и форма будет отправлена до загрузки файлов.Проблема в том, что я не могу контролировать этот вызов функции.
Я недавно читал о новой версии jQuery 1.5 и новом отложенном объекте и кажется, что это может помочь мне решить эту проблему.Есть ли способ дождаться завершения асинхронного вызова функции и продолжить выполнение кода после вызова.Итак, я ищу что-то вроде следующего псевдокода ...
var uploader = $('#plupload_container').pluploadQueue();
$('#submitButton').click(function() {
// if there are files to be uploaded, do it
if (uploader.files.length > 0) {
// make the call and wait for the uploader to finish
uploader.start();
while ( the uploading is not done ) {
wait for the uploader to finish
}
// continue with submission
}
});
Есть ли способ "дождаться" завершения uploader.start()
, по сути, ставя паузу на обработчик события click, чтобысначала можно загрузить все файлы, а затем завершить выполнение остальной части обработчика события click?Я пробовал следующее, но «готово» печатается до завершения загрузки файлов ...
$.when(uploader.start()).then(function () {
console.log("done")
});
Еще одна полезная информация ... Я могу связать определенные события с этим uploader
экземпляром объектанапример «UploadProgress» или «UploadComplete».Могу ли я как-то использовать отложенный объект, чтобы перехватить, например, событие «UploadComplete»?Есть ли AJAX-у способ сделать это?
Спасибо.