Обработка перевода сообщений об ошибках, когда Promise отклонен - PullRequest
0 голосов
/ 22 марта 2020

Как вы обрабатываете перевод сообщений об ошибках при выполнении вызовов 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.');
  }
}

В другой части приложения я выполняю вызов функции, чтобы получить список задач. Каков наилучший способ обработки перевода ошибки, если получение задания не удается?

На данный момент у меня есть две идеи:

  1. Возвращать ключ перевода и обрабатывать перевод после вызова метод:
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');
  }
}

Насколько хорош любой из этих подходов?

...