Создайте обещание jQuery для файлового API readAsTextJquery

Программирование на jquery
Ответить
Anonymous
 Создайте обещание jQuery для файлового API readAsText

Сообщение Anonymous »

Я использую элемент ввода файла, с помощью которого пользователь выбирает один текстовый файл:
Я хотел бы создать обещание jQuery, связанное с асинхронным событием объекта FileReader, загружающим содержимое выбранного файла. Я пробовал подобный код в различных контекстах, но, похоже, возникла какая-то проблема с синхронизацией, поскольку я не передаю переменную содержимого в обратный вызов then():

Код: Выделить всё

var promise = $.Deferred(function(dfd) {
var file = $("#myfile")[0].files[0];
var reader = new FileReader();
reader.onload =  function(event){
var contents = event.target.result;
dfd.resolve(contents);
};
reader.readAsText(file);
}).promise();

// other code and promises here

$.when(promise).then(function(contents){
console.log(contents);
});
На самом деле здесь задействованы два события. Первое событие происходит, когда пользователь нажимает кнопку «Обзор» и выбирает определенный файл. Второе событие — это когда FileReader загружается с содержимым выбранных файлов. Если кто-нибудь знает, как правильно упаковать это, я обещаю, что при разрешении сохранится содержимое выбранного файла, я был бы признателен за ваше понимание. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/125 ... readastext
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»