Ответ на ваш вопрос - нет.
В асинхронных запросах функция должна возвращаться до того, как станет доступен результат. Чтобы обойти это, используется шаблон обратного вызова - при вызове такой функции вы не ожидаете возврата, а скорее предоставляете ему обратный вызов - функция, которая вызывается, когда результат доступен.
Вот простой пример:
var someValue;
fetchValueFrom('http://example.com/some/url/with/value', function(val) {
someValue = val;
doSomethingElseWith(someValue);
});
Здесь мы создаем функцию и передаем ее в качестве второго параметра в вызов fetchValueFrom
. Как только значение станет доступным, будет вызвана эта функция, которая установит переменную и вызовет другую функцию для продолжения выполнения.