如何解决取消向服务器发送删除请求的操作后,应用程序崩溃
我正在使用 axios 发出 HTTP 请求
这是我删除数据库中用户的功能,我使用的是作为依赖项安装的 json-server
mHandlerTask
我的 http 删除请求是这样的
const deleteThisPerson = (id) => {
// console.log(`${name} is being deleted`);
contactServices
.remove(id)
.then(() => {
const currentContacts = persons.filter(person => person.id !== id)
setPersons(currentContacts)
})
.catch(error => console.log(error))
}
我有一个 const remove = (id) => {
if (window.confirm(`Delete user?`)) {
const request = axios.delete(`${baseUrl}/${id}`)
return request.then(response => response.data)
} else {
return false
}
}
,当用户尝试从数据库中删除资源时会弹出它,如果我点击 window.confirm()
,它会工作,但如果我点击 Ok
,它会崩溃,我收到以下错误消息 Cancel
我该如何纠正?
解决方法
在 else
分支中,您返回的 false
没有 then
属性(false.then
是 undefined
)。您可以改用 Promise.reject
来返回被拒绝的承诺。
const remove = (id) => {
if (window.confirm('Delete user?')) {
// ...
} else {
return Promise.reject(new Error('Request cancelled'))
}
}
您也可以省略 else
子句,因为您是从 if
分支返回。
const remove = (id) => {
if (window.confirm('Delete user?')) {
// ...
}
return Promise.reject(new Error('Request cancelled'))
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。