Javascript Await возвращает неопределенный - PullRequest
0 голосов
/ 27 марта 2020

У меня простой вопрос о Javascript обещаниях и использовании 'await'. Вот пример того, как работает мой код:

async function doSomething() { 
   var response = await loadData();
   //continue
}

function loadData() {
   $.getJSON(url, function(json){
       //work with json data
       return Promise.resolve("finished");
   )}
}

Я не хочу, чтобы программа продолжала до тех пор, пока загрузка JSON не будет завершена. Но функция loadData возвращает undefined, поэтому оператор await не работает. Есть ли в ней ошибки?

Спасибо за ваши ответы

1 Ответ

0 голосов
/ 27 марта 2020

loadData является function для вас await для. Однако внутри этого function вы асинхронно отправляете запрос на url. Ваш loadData ничего не возвращает, поэтому undefined возвращает вам опыт.

Фундаментальная проблема заключается в том, что ваша внутренняя функция все еще асинхронна. Из документов видно, что get JSON реализует интерфейс Promise , поэтому вы можете использовать его как Promise.

...