const getName = async () => await Promise.resolve('John');
В приведенном выше, у вас есть асинхронная функция (функция стрелки), которая использует await
внутри.
Это нормально (хотя и бессмысленно, поскольку вы могли бы вернуть обещание напрямую).
Здесь:
const name = await getName();
Вы снова используете await
, и хотя функция справа возвращает обещание, функция, внутри которой она появляется, не async
, поэтому она недопустима.
Поместите его в асинхронную функцию, и все будет хорошо:
const getName = async() => await Promise.resolve('John');
const init = async() => {
const name = await getName();
console.log(`Hi ${name}`);
};
init();
Как уже упоминалось, создание getName
async
и await
внутри - просто ненужно сложный набор вложенных обещаний, и вы можете упростить:
const getName = () => Promise.resolve('John');
const init = async() => {
const name = await getName();
console.log(`Hi ${name}`);
};
init();