Я хочу проверить, есть ли ошибка в одном из моих трех вызовов API, и если это так, прервать все из них. До сих пор мне удавалось только заставить функции проверять, запущены ли они, но я понимаю, что проверяю это только независимо от ошибок. Так я должен поставить условные в мои фактические функции вызова API, или я могу сделать это за рамками? Кстати, я поместил все три функции в одну функцию, так как все они запускаются вместе в асинхронном режиме c по нажатию кнопки. вот мой код.
async fetchData() {
try {
const res = await axios.get('api/.../...');
this.setState({
locationFull: res.data,
sent: true
});
} catch (error) {
this.setState({
error,
sent: false
});
console.log('Data not got');
}
};
async sendData() {
try {
const res = await axios.post('api/.../...');
this.setState({
locationFull: res.data,
sent: true
});
} catch (error) {
this.setState({
error,
sent: false
});
console.log('data not sent');
}
};
async updateData() {
try {
const res = await axios.put('api/.../...');
this.setState({
locationFull: res.data,
sent: true
});
} catch (error) {
this.setState({
error,
sent: false
});
console.log('data not updated');
}
};
моя комбинированная функция, которая запускает все три
async combinedFunction() {
await this.fetchData();
await this.sendData();
await this.updateData();
await this.sentCheck();
};
мое условное для проверки ошибок (что я знаю, это неправильно, но это то, что у меня есть до сих пор)
sentCheck() {
const fetched = this.fetchData;
const updated= this.updateData;
const sent = this.sendData;
if (!fetched) {
console.log('error in fetching');
} else if (!updated) {
console.log('error in updating');
} else if (!sent) {
console.log('error in sent');
}
};
Итак, еще раз, я хочу в конечном итоге отменить все вызовы, если один из трех вызовов вызовет ошибку (когда они обновляются и публикуются в разных конечных точках и коллекциях в серверной части).