JS-Data addAction方法抛出而不是拒绝带有错误消息的promise

问题描述 投票:0回答:2

在js-data库中,我添加了一个addAction()方法的自定义查询,如here所示。现在,当我的服务器在调用该自定义操作时返回4xx错误代码时,会抛出错误,但无法找到服务器响应(发送):

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

我该怎么处理?有什么方法我不知道应该用吗?我已经根据responseresponseError尝试了addAction()docs属性。

javascript axios jsdata
2个回答
1
投票

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);
  },
)

0
投票

这与axios有关:被拒绝的错误对象确实将响应作为属性(source code),但它在控制台输出中不会出现,因为错误对象在控制台中的显示方式不同。以下显示了基础属性:

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)
});
© www.soinside.com 2019 - 2024. All rights reserved.