关于 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 一个没有人处理的承诺。