Me he encontrado con un problema donde parece que no puedo obtener un valor de un método de JavaScript asíncrono que estoy ejecutando en Jquery. Mi Jquery se ve así:¿Devuelve el valor del método de JavaScript asíncrono?
$(document).ready(function() {
$('#splash_image_upload').change(function() {
var file = this.files[0];
var blob_string = create_blob(file);
alert(blob_string);
});
estoy en condiciones de acceder al valor que viene del evento 'onload' pero me parece que no puede devolver el valor real. He intentado esto: `
function create_blob(file) {
var reader = new FileReader();
reader.onload = (function() { return function(e) { return e.target.result; }; })();
reader.readAsDataURL(file);
}
Cada vez que se realiza esta función el valor de la variable 'blob_str' es 'indefinido', presumiblemente debido a que la asignación se realiza antes de que termine la función. No estoy muy seguro de cómo hacerlo. ¿Hay alguna manera de que pueda devolver este valor desde esta función?
relacionada: [? ¿Cómo devolver la respuesta de una llamada AJAX de una función] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call-from-a-function) – Bergi