Estoy escribiendo una función que tiene que obtener la información en miniatura de un video determinado utilizando la API embed.ly, sin embargo actualmente la función devuelve un valor incluso antes de obtener el resultado JSON de la API.
estoy usando el siguiente código:
function getThumbnail(vUrl) {
var thumbnail = '';
var title = '';
var caption = '';
var content = '';
$.when($.getJSON("http://api.embed.ly/1/oembed?key=:key&url="+vurl)).then(function(data){
var thumbnail = data.thumbnail_url;
console.log(thumbnail);
return {
thumbnail:thumbnail,
vurl:vurl
}
});
}
Sin embargo cuando se utiliza la consola de Chrome Javascript puedo ver que:
- la función se llama
- indefinido se devuelve
- XHR la solicitud ha finalizado
- el contenido de la miniatura variable se muestra en la consola
Esto obviamente no es el orden correcto.
¡Cualquier ayuda es muy apreciada!
posible duplicado de [? ¿Cómo devolver la respuesta de una llamada AJAX] (http://stackoverflow.com/questions/14220321/how-to-return-the -response-from-a-ajax-call) – Bergi