我使用flask在python上编写了以下代码
@bp.route("/test", methods=["GET"])
def test():
throw_error = True
if throw_error :
return jsonify(message="Throwing an error"), 405
return jsonify(message="Test message"), 200
在react上,我有一个具有以下功能的上下文设置
function testRequest(){
const response = axios.get('/api/test')
console.log(response)
}
我通过在另一个组件中单击按钮来调用此函数
async function handleButtonClick(e){
e.preventDefault();
try{
await testRequest();
}catch(error) { // DOESN'T EXECUTE??
console.error("Error occured")
setError("Error occurred in test method")
}
}
为什么try没有捕捉到405错误?
2条答案
按热度按时间r6hnlfcb1#
你只能有效地等待承诺。
testRequest
没有回报的承诺。它触发
axios.get
,将承诺转让给response
,记录它,然后返回undefined
.这个
try/catch
一点也不违背诺言。您可以通过以下方式解决此问题:
因此,承诺正在兑现
await
他在房间里哭了try/catch
.rm5edbpk2#
通过以下对函数的修改,您将能够捕获错误。