Функция возвращает асинхронный ответ [дубликат]

This question already has an answer here:

How do I return the response from an asynchronous call? 33 answers

Как человек спросил здесь (но его решения, как вызвать другую функцию)https://stackoverflow.com/a/10796326/315200 ... Я хотел бы знать, возможно ли иметь функцию, которая не вызывает вторую функцию в ответ на асинхронный запрос, а простоreturn когда асинхронный запрос отвечает.

Something like this maybe:

function callToFacebook() {
    var fbResponse;

    FB.api('/me', function (response) {
        fbResponse = response;
    });

    return fbResponse; //Will return undefined because CallToFacebook is async
}

Разве это не возможно каким-то образом, без вызова другой функции?

То, что я пытаюсь достичь, - это иметь одну функцию, которую я могу вызвать с некоторыми параметрами, которая будет возвращать ответobject из асинхронного веб-сервиса, такого как FB.

 Felix Kling19 июн. 2012 г., 12:24
Если бы это было возможно, это было бы дано как ответ вместо этого.
 gdoron19 июн. 2012 г., 12:25
@FelixKling. ЛОЛ.

Ответы на вопрос(2)

Noэто невозможно.

Вы не можете возвращать значение, которое возвращается из асинхронной операции.

Подумайте об этом, вы говорите 10 людям, чтобы они участвовали в соревнованиях по бегу на одну милю, они начинаются сейчас, заканчиваются через минуту + -, но вы хотите знать ответnowэто невозможно, если вы не обманываете ...

 curly_brackets19 июн. 2012 г., 12:41
Я просто хочу, чтобы функция ждала ответа, а не гадала и не жульничала.
 19 июн. 2012 г., 13:23
@KennethB. Так что ответ невозможен,
Решение Вопроса

имое значение синхронно, потому что это значение не существует в то время (так как оно создается асинхронно в фоновом режиме).

Вы можете, однако, вернутьобещание объект, представляющий «потенциальное возвращаемое значение»; асинхронной операции, и связать функцию с этим объектом, используясделанный() или похожие. Таким образом, ваша функция получает семантику возврата (вместо того, чтобы связывать поток управления в обратный вызов) и остается асинхронной.

 27 июл. 2013 г., 08:34
Можете ли вы привести один пример этого в jsfiddle плз

Ваш ответ на вопрос