Comment puis-je retourner la réponse d'un appel asynchrone?

J'ai une fonction foo qui fait une requête Ajax. Comment puis-je retourner la réponse de foo?

J'ai essayé de retourner la valeur de la success de rappel ainsi que de l'affectation de la réponse à une variable locale à l'intérieur de la fonction, et retourner celui-là, mais aucun de ces moyens fait de retourner la réponse.

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            //return response; //<- I tried that one as well
        }
    });

    return result;
}

var result = foo(); //It always ends up being `undefined`.
Pour une simple intro de Promesses, cela peut être une bonne lecture: devopedia.org/promises
[J'ai été confrontée au même problème de l'appel asynchrone à l'aide d'axios et js, mais il n'est pas recommandé d'utiliser une fonction synchrone, cela fonctionne pour certaines situations. ](stackoverflow.com/questions/55239719/...)
Vous ne pouvez pas le faire fonctionner de la façon dont vous le souhaitez. si async/await serait de travailler. là encore, c'est la promesse base

OriginalL'auteur Felix Kling | 2013-01-08