通过检查响应来处理Promise中的错误

时间:2019-10-03 16:12:50

标签: javascript reactjs promise response

我需要处理一个错误,该错误的响应不适用于下面的示例代码中的“然后”。

getData().then(response => transformData(response));

我可能需要做这样的事情。但是,对于如何掌握“然后”内的“响应”感到困惑。

getData().then(response => transformData(response)).catch(() => if(!response.data) { dispatch({ type: 'some_action' });
}

我该如何在“ then”之外和catch中访问响应以调度其他操作?

3 个答案:

答案 0 :(得分:2)

我认为您可以处理是否响应成功但它没有关于i的数据,或者如果请求只是出错,则catch语句可以处理它:

source '<Private Podspec>'

答案 1 :(得分:0)

.then()函数可以接受两个参数。第一个是您正在使用的成功回调。第二个是失败回调,这是您想要的。

getData().then(
  success => transformData(success),
  failure => doSomething(failure)
);

答案 2 :(得分:0)

首先,您必须了解Promise的工作原理。 then()方法有两个功能。首先是成功,其次是失败。可以在es6中使用。 catch 写入失败。现在,首先了解到catch只被称为网络故障,500错误,404未找到错误。在这种情况下,没有数据要处理。

但是您想要的是200 OK,但是如果数据丢失。您已经成功地将代码投入了自己的工作:

getData().then(response => {
  const res = transformData(response);
  if(!res.data) {
     // do your stuff
  }
   return res; // else normal behaviour
});