Просто перед запросом меняешь состояние и после получения ответа возвращаешь.
const getFn = async () => {
let loading = true;
try {
// Некий проммис
} catch (e) {
// Обработка ошибки
} finaly {
loading = false;
}
}
Соответственно вместо loading можно использовать, что угодно. И в finaly вставлять не обязательно, можно уже в ошибке некий код обрабатывать, в зависимости от результата запроса что-то делать. Показал частый пример