la fonction d'attendre avec retour jusqu' $.getJSON est fini

Je suis en train d'écrire une fonction qui a pour obtenir la vignette de l'information à partir d'une vidéo à l'aide de l'intégrer.ly API, cependant, actuellement, la fonction renvoie une valeur avant même d'avoir obtenu le résultat JSON à partir de l'API.

Je suis en utilisant le code suivant:

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
        }
    });
}

Cependant lors de l'utilisation du Chrome console Javascript, je peux voir que:

  1. la fonction est appelée
  2. undefined est retourné
  3. Demande XHR est fini
  4. variable vignette contenu est affiché dans la console

C'est évidemment le mauvais ordre.

Toute aide est grandement appréciée!

OriginalL'auteur xorinzor | 2012-05-27