🧱 Суть
async-функция всегда возвращает Promise.
Если результат функции нужен снаружи – его необходимо вернуть через return.
📦 Проблема
1. Забывают return
async function getUserName() {
// return забыли
}
const name = await getUserName();В результате:
name === undefined2. Не понимают, когда return обязателен
Иногда функция должна вернуть данные, а иногда – просто выполнить действия.
✅ Решение
Использовать return, если результат функции будет использоваться после await.
💻 Код
Возврат значения:
async function getUserName() {
return 'Евгений';
}
const name = await getUserName();
// name === 'Евгений'Без return:
async function getUserName() {}
const name = await getUserName();
// name === undefinedВозврат данных после fetch:
async function fetchUser() {
const response = await fetch('/user.json');
const data = await response.json();
return data;
}
const user = await fetchUser();Функция без возвращаемого значения:
async function logUser() {
const response = await fetch('/user.json');
const data = await response.json();
console.log(data);
}
await logUser();Когда нужен return
Если нужно получить результат из функции, то return подходит.
Если нужно выполнить действия внутри функции, то он не нужен
Лайфхак
Если пишешь:
const result = await myFunction();то внутри myFunction всегда должен быть return, иначе result будет undefined.
🎯 Вывод
asyncвсегда возвращаетPromisereturnнужен, если результат будет использоваться послеawait- без
returnфункция вернётPromise<undefined> - если функция только выполняет действия –
returnне обязателен