我需要处理一个错误,该错误的响应不适用于下面的示例代码中的“然后”。
getData().then(response => transformData(response));
我可能需要做这样的事情。但是,对于如何掌握“然后”内的“响应”感到困惑。
getData().then(response => transformData(response)).catch(() => if(!response.data) { dispatch({ type: 'some_action' });
}
我该如何在“ then”之外和catch中访问响应以调度其他操作?
答案 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
});