Метод add-Action JS-Data выбрасывает вместо отклонения обещание с сообщением об ошибке - PullRequest
0 голосов
/ 02 сентября 2018

В библиотеку js-data я добавил пользовательский запрос методом addAction(), как показано здесь . Теперь, когда мой сервер возвращает код ошибки 4xx при вызове этого настраиваемого действия, выдается ошибка, но ответа сервера (который отправляется) нигде не найти:

store.getMapper('school').getTeacherReports(1234, {
  basePath: 'reports'
}).then(function(response) {
  console.log('response', response.data)
}).catch(function(err) {
  console.log('err', err);
})

Как мне справиться с этим? Есть какой-то метод, который я не знаю, который я должен использовать? Я уже пробовал свойства response и responseError в addAction() в соответствии с документами .

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Это имеет отношение к axios: отклоненный объект ошибки действительно имеет ответ как свойство ( исходный код ), но он не отображается как таковой в выходных данных консоли, поскольку объекты ошибок отображаются по-разному в приставка. Ниже показаны основные свойства:

store.getMapper('school').getTeacherReports(1234, {
  basePath: 'reports'
}).then(function(response) {
  console.log('response', response.data)
}).catch(function(err) {
  let errorObject = JSON.parse(JSON.stringify(error))
  console.log(errorObject)
});
0 голосов
/ 02 сентября 2018

Функция then может принимать два параметра:

then(
  onSuccess: Function,
  onRejection: Function
)

Итак, вот как вы можете справиться с отклонением из-за ошибки 4xx:

store.getMapper('school').getTeacherReports(1234, {
  basePath: 'reports'
}).then(
  function (response) { // on success
    console.log('response', response.data);
  },
  function (error) { // on error
    console.error(error);
  },
)
...