gpt4 book ai didi

javascript - axios 不会分别返回响应和错误

转载 作者:行者123 更新时间:2023-11-29 16:30:50 26 4
gpt4 key购买 nike

我有一个 React 组件。在该组件内,我有一个 onFormSubmit 函数,它从另一个组件调用函数。这个其他函数正在使用 axios 发出 POST 请求。如果 POST 请求为 true,我想返回对第一个函数的响应,如果不是,则返回错误。现在发生的情况是我的“SUCCESS RESPONSE”console.log 总是被触发,即使 axios POST 请求中有错误。如果出现错误,则应触发“ERROR RESPONSE”console.log。

从第一个组件

 onFormSubmit = () => {
postJobDescriptionQuickApply(this.state, this.props.jobDescription.id)
.then((response) => {
console.log('SUCCESS RESPONSE', response)
})
.catch((error) => {
console.log('ERROR RESPONSE', error)
})
}

来自第二个组件

export const postJobDescriptionQuickApply = (easyApplyData, jobId) => apiUrl('easyApply', 'easyApply').then(url => axios
.post(url, {
applicant: {
email: easyApplyData.email,
fullName: `${easyApplyData.firstName} ${easyApplyData.lastName}`,
phoneNumber: easyApplyData.phoneNumber,
resume: easyApplyData.resume,
source: easyApplyData.source,
},
job: {
jobId,
},
})
.then((response) => {
console.log('SUCCESS', response.data.developerMessage)
return response.data.developerMessage
})
.catch((error) => {
// handle error
console.log('ERROR JOB DESCRIPTION', error.response.data.developerMessage)
return error.response.data.developerMessage
})

最佳答案

调用return表示成功,调用方法中的.catch函数不会被触发。使用 throw 代替返回 error.response.data.developerMessage。这将导致它被抛出,然后用调用函数中的 .catch 方法捕获。

不过,根据具体情况,通常不建议捕获并重新抛出这样的异常,因为您会丢失堆栈跟踪等。您最好不要在较低的方法中捕获错误,而仅依靠调用方法来处理错误。

关于javascript - axios 不会分别返回响应和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58124580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com