Как вы обрабатываете перевод сообщений об ошибках при выполнении вызовов API с помощью Promises? У меня есть следующий код в моем приложении (приложение использует модуль перевода i18n):
async function getTodos (): Promise<Array<Todo>> {
try {
const todos = await axios.get(`...endpointUrl/todo/list`);
return todos.data;
} catch {
throw new Error('Getting todos failed.');
}
}
В другой части приложения я выполняю вызов функции, чтобы получить список задач. Каков наилучший способ обработки перевода ошибки, если получение задания не удается?
На данный момент у меня есть две идеи:
- Возвращать ключ перевода и обрабатывать перевод после вызова метод:
getTodos()
.then((todos: Array<Todos>) => {
...
})
.catch((error: string) => {
console.log(this.$t(error.message)); // this would result in e.g. this.$t('getTodosFailed')
});
Переведите ошибку в первую функцию и верните переведенную строку:
async function getTodos (): Promise<Array<Todo>> {
try {
const todos = await axios.get(`...endpointUrl/todo/list`);
return todos.data;
} catch {
throw new Error(this.$t('getTodosFailed');
}
}
Насколько хорош любой из этих подходов?