Привет. Есть две функции, использующие async await
:
function getAirportViaJson(code) {
return new Promise(resolve => {
$.getJSON('/json/airports.travelpayouts.json', function(data){
for(let i = 0; i < data.length; i++)
if(code == data[i].code)
resolve(data[i].name_translations.ru);
});
});
}
async function getAirportByCode(code) {
let airport = await getAirportViaJson(code);
return airport;
}
getAirportByCode('SVO');
Функция должна возвращать значение Шереметьево
, исходя из его IATA-кода SVO
, но почему-то возвращается [object Promise]
. Почему?
Вы объявили async
функцию. Это значит, что возвращает она promise
.
Так как она находится на т.н. "верхнем уровне" необходимо promise
обработать ручками, без await
И пожалуйста, не забывайте что в теле async
функции должен присутствовать блок try...catch
, иначе uncaught promise rejection вас ждет
function getAirportViaJson() {
return new Promise(resolve => {
resolve("123");
});
}
async function getAirportByCode(code) {
try {
let airport = await getAirportViaJson();
return airport;
} catch (err) {
console.log(err);
}
}
getAirportByCode('SVO')
.then(console.log) // function(res) {console.log(res)}
.catch(alert);
Код работает в последнем chrome
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как имитировать клик на span UploadНа самом деле нажимаю на кнопку submit, но словно на span
Можно ли указывать необязательные параметры RewriteRule при написании ЧПУДопустим есть скрипт с запросом - cats
Судя по документации bitnami (https://docsbitnami