Я столкнулся с проблемой, когда мне кажется, что я не могу получить значение из асинхронного метода JavaScript, который я использую в JQuery. Мой JQuery выглядит так:
$(document).ready( function() {
$('#splash_image_upload').change( function() {
var file = this.files[0];
var blob_string = create_blob(file);
alert(blob_string);
});
Я могу получить доступ к значению, полученному из события 'onload', но я не могу вернуть фактическое значение. Я пробовал это: `
function create_blob(file) {
var reader = new FileReader();
reader.onload = (function() { return function(e) { return e.target.result; }; })();
reader.readAsDataURL(file);
}
Каждый раз, когда я выполняю эту функцию, значение переменной 'blob_str' равно 'undefined' предположительно потому, что присвоение выполняется до завершения функции. Я не совсем уверен, как это сделать. Есть ли способ вернуть это значение из этой функции ??