Я пытаюсь внутри асинхронной функции вызвать другие асинхронные функции, но получаю следующее сообщение об ошибке:
Can not use keyword 'await' outside an async function
Вот код:
export const setGenderThunk = (gender, login) => {
return async dispatch => {
const users = await getUsers || []; // там внутри fetch
users.forEach(user => {
if(user.login === login) {
const user_ = { ...user, gender: gender };
await setUser(user_, user.id); // там тоже внутри fetch
debugger
if(result.ok) {
dispatch(setGenderAC(user_.gender));
}
}
});
}
}
Помогите пожалуйста понять почему так происходит. Вот моя успешная попытка решить проблему, но эта попыка слишком многословная. Хотелось бы более простую и короткую запись
export const setGenderThunk = (gender, login) => {
return async dispatch => {
const users = await getUsers || [];
users.forEach(user => {
if(user.login === login) {
const user_ = { ...user, gender: gender };
;(async () => {
const result = await setUserF(user_, user.id);
debugger
if(result.ok) {
dispatch(setGenderAC(user_.gender));
}
})();
}
});
}
}
async function setUserF(user, id) {
return await setUser(user, id);
}