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

时间:2018-09-02 11:04:22

标签: javascript axios jsdata

在js数据库中,我使用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);
})

该如何处理?有什么我不知道应该使用的方法吗?我已经根据docs尝试了response中的responseErroraddAction()属性。

2 个答案:

答案 0 :(得分: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);
  },
)

答案 1 :(得分: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)
});