关于 Bootstrap Vue @ok 处理程序中被忽略的承诺的警告
Warning about ignored promise in Bootstrap Vue @ok handler
我的 VueJS 应用程序使用 Bootstrap Vue.下面显示了一个基本上可以正常工作的模式。
b-modal(
:id="`delete-modal-${data.index}`"
centered hide-header
:ok-title="$t('deletion_confirm')" :cancel-title="$t('deletion_abort')"
@ok="deleteDocument(data.item)"
) {{ $t('deletion_question', {filename: data.item.name}) }}
但是,我的 IDE (WebStorm) 在 deleteDocument
方法上显示警告:
Promise returned from deleteDocument is ignored
deleteDocument()
是一种 async/await 方法,它向后端发送 DELETE
请求,如下所示:
async deleteDocument(item) {
await ApiService.deleteDocument(item);
// ...
}
我该如何修复该警告?
每个async
函数return一个承诺。因此,在您的情况下 @ok="deleteDocument(data.item)"
调用 deleteDocument
,return 是一个没有人处理的承诺。
这只是警告,不是错误,如果您知道自己在做什么,可以忽略它。
如果这个警告真的困扰您,您可以将 deleteDocument
更改为普通函数并使用 .then()
回调方法以经典方式处理此承诺:
deleteDocument(item) {
ApiService.deleteDocument(item).then(() => {/* handle stuff */});
// returns undefined by default like every other normal function
}
这样它就不会 return 一个没有人处理的承诺。
我的 VueJS 应用程序使用 Bootstrap Vue.下面显示了一个基本上可以正常工作的模式。
b-modal(
:id="`delete-modal-${data.index}`"
centered hide-header
:ok-title="$t('deletion_confirm')" :cancel-title="$t('deletion_abort')"
@ok="deleteDocument(data.item)"
) {{ $t('deletion_question', {filename: data.item.name}) }}
但是,我的 IDE (WebStorm) 在 deleteDocument
方法上显示警告:
Promise returned from deleteDocument is ignored
deleteDocument()
是一种 async/await 方法,它向后端发送 DELETE
请求,如下所示:
async deleteDocument(item) {
await ApiService.deleteDocument(item);
// ...
}
我该如何修复该警告?
每个async
函数return一个承诺。因此,在您的情况下 @ok="deleteDocument(data.item)"
调用 deleteDocument
,return 是一个没有人处理的承诺。
这只是警告,不是错误,如果您知道自己在做什么,可以忽略它。
如果这个警告真的困扰您,您可以将 deleteDocument
更改为普通函数并使用 .then()
回调方法以经典方式处理此承诺:
deleteDocument(item) {
ApiService.deleteDocument(item).then(() => {/* handle stuff */});
// returns undefined by default like every other normal function
}
这样它就不会 return 一个没有人处理的承诺。