Я столкнулся с проблемой, когда не могу получить значение из асинхронного метода 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', предположительно, потому что назначение выполняется до завершения функции. Я не совсем уверен, как это сделать. Есть ли способ, которым я могу вернуть это значение из этой функции ??