我正在尝试从axios响应中了解工作流程,如果下一个解释在任何地方有误,我希望有人可以纠正我。
我有axios的示例代码,我想正确地理解此'.then'和'.catch'方法的功能。
return this.$axios.$get(`controllerName/methodController`)
.then(response => {
console.log("then1");
console.log(response);
}, ({response}) => {
console.log("then2");
console.log(response);
})
.catch(error => {
console.log("catch");
console.log(error)
});
},
我做了一些测试,以创建不同的情况,并从后台应用程序发送不同的响应,在这种情况下,使用Laravel构建。例如:
然后的情况1:
200
状态代码。return response()->json('message');
,则会得到200
状态代码。然后的情况2:
'then2' log
,响应中的状态代码为404
状态代码。return response()->json('message');
,但添加一个不同的状态代码,例如return response()->json('message', 404);
,因此通过添加一个不同于默认状态的状态代码200一个进入then2区域。500
状态代码。案例捕获:
我无法从渔获案件中复制任何案件,但我想是这样的:
问题:
为什么会得到两个不同的“ then”?我必须像这样保持它的状态,以便能够从异常响应中识别出正常响应...但是不确定为什么会这样。很高兴了解这种行为。
catch事件可以捕获哪些案件?我在我描述的事件中忘记了then事件中的任何情况,这些情况也可能很有趣?