Возвращает значение из асинхронного метода JavaScript?

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

9
задан mu is too short 2 June 2011 в 06:10
поделиться