Допустим, у меня есть функция входа в систему
login = () => {
let url = baseURL + '/user/login?_format=json';
let data = {
"name": this.state.email,
"pass": this.state.password
};
return axios({
url,
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
withCredentials: true,
credentials: 'same-origin'
})
.then(function(result) {
console.log('result:', result);
this.setState({csrfToken: result.data.csrf_token});
this.setState({logoutToken: result.data.logout_token});
return result;
})
.catch(error => console.log('error:', error));
};
Затем я хочу вызвать функцию onSubmit в React следующим образом. Если функция возвращает ошибку по какой-либо причине. Как предотвратить запуск следующей функции в этом случае api.login()
?
{api => (
<Form
onSubmit={async e => {
e.preventDefault();
await this.login();
api.login()
}}
>
<input/>
</Form>
Имеет ли смысл попытка / отлов в этом случае? Я пробовал несколько вариантов, включая встроенный метод catch catch, и функция запускается независимо от того, что произойдет, как только обещание из this.login();
вернет либо результат, либо ошибку.