Это ожидаемое поведение. async
функции возвращают Promise
. Начиная с MDN :
Объявление функции asyn c определяет асинхронную функцию - функцию, которая является объектом AsyncFunction. Асинхронные функции работают в отдельном порядке, чем остальная часть кода, через событие l oop, возвращая неявное обещание в качестве результата .
Вы должны помнить, как только вы выполнить любую асинхронную операцию, которую вы не можете go вернуть, выполнив только синхронные операции в том же потоке.
Вы должны использовать свою функцию isAuthenticated()
в ловушке useEffect
, которая изменит состояние.
Вы можете использовать функцию следующим образом:
useEffect(() => {
isAuthenticated().then(auth=> /*... set the setters hooks or setState ..*/)
});