Javascript 嵌套的Try/Catch、异步/等待调用

Javascript 嵌套的Try/Catch、异步/等待调用,javascript,http,asynchronous,axios,try-catch,Javascript,Http,Asynchronous,Axios,Try Catch,我试图在异步catch块中等待axios post请求。post请求未返回任何内容。是因为我不能在一个捕捉区内使用wait吗? 代码看起来像: 异步函数saveData(){ console.log(“保存数据”); } 异步函数doStuff(){ 试一试{ const result=等待Axios.get('http://localhost/blah'); 返回结果; }捕捉(错误){ 如果(err.response.status==400){ const otherResult=等待Ax

我试图在异步catch块中等待axios post请求。post请求未返回任何内容。是因为我不能在一个捕捉区内使用wait吗? 代码看起来像:

异步函数saveData(){
console.log(“保存数据”);
}
异步函数doStuff(){
试一试{
const result=等待Axios.get('http://localhost/blah');
返回结果;
}捕捉(错误){
如果(err.response.status==400){
const otherResult=等待Axios.post('http://localhost/postaddress');
等待saveData();
}
}

}
您似乎没有使用(用于返回)您定义为axios POST结果的变量
otherResult

您是否尝试过:

异步函数doStuff(){ 试一试{ const result=等待Axios.get('http://localhost/blah'); 返回结果; }捕捉(错误){ 如果(err.response.status==400){ const otherResult=等待Axios.post('http://localhost/postaddress'); 等待saveData();
return otherResult;//它的
axios
不是
axios
。await在catch中应该可以正常工作。猜测其他错误,测试时是否查看正确的状态代码?yurRa是正确的。此外,您可以在catch块中使用await,但随后应该将其放在另一个try/catch中。但是,您只需重新创建用你的尝试/ catch块来处理末日金字塔。考虑从catch块中调用另一个函数,它将提交备用请求并处理它自己的尝试/捕获。这将更好地遵循所谓的单一责任原则。