forEach - синхронный. Либо используйте либы умеющие в асинхронный forEach, либо используйте обычные циклы:
export const setGenderThunk = (gender, login) => {
return async dispatch => {
const users = await getUsers || []; // там внутри fetch
for(let user of users) {
if(user.login === login) {
const user_ = { ...user, gender: gender };
await setUser(user_, user.id); // там тоже внутри fetch
debugger
if(result.ok) {
dispatch(setGenderAC(user_.gender));
}
}
};
}
}
P.S. Второй вариант кстати у вас очень плох:
forEach отрабатывает всё равно синхрнно, но при этом
единовременно плодит множество асинхронных функций выполняющихся
параллельно (которых, само собой, никто не ждёт).