Редактировать: ответ , опубликованный на вопрос @Tomlak, связанный с сообщением мне об этой классной концепции «Обещания», на которую вы также можете взглянуть.
Смысл использования $ .ajax обычно состоит в том, чтобы делать асинхронные запросы.Вызов его и ожидание немедленного возврата значения будет синхронным запросом.
При этом вы можете делать то, что просите, используя $ .ajax в синхронном режиме, установивasync:false
.Это может привести к блокировке браузера до завершения запроса.
function loadFrames(coords, spritesheet) {
var myFrames;
$.ajax({
type: "GET",
url: coords,
dataType: "xml",
async: false,
success: function(xml,code,obj) {myFrames = parseFrameData(xml, spritesheet);}
});
return myFrames;
}
var frames = loadFrames('player.xml', 'spritesheet.png');
Я считаю, что это будет работать, но у меня нет хорошего способа проверить это.Кто-нибудь еще может подтвердить этот подход?
Тем не менее было бы гораздо лучше сделать это асинхронно, как подсказывает @Petah.