微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在intellij中解决“忽略承诺”警告但仅针对特定功能?

如何解决如何在intellij中解决“忽略承诺”警告但仅针对特定功能?

我的项目中有一个函数 (foo),它返回一个 promise,但通常不需要等待 promise 解决,因此永远不会附加 .then() 处理程序。 Intellij IDEA 很有帮助,因为它总是用警告标记它。这可以通过添加删除

// JSIgnoredPromiseFromCall

文件的顶部。但这将使它忽略所有被忽略的承诺,这不是我们想要的。为每个语句添加注释也不理想,因为该函数经常被调用,所以它只会污染源代码

有没有办法用文件级 suppeRSS 注释指定要忽略的确切函数?例如

// noinspection JSIgnoredPromiseFromCall[foo]

解决方法

我怀疑您是否可以在函数级别指定这一点,而不是首先不让函数返回承诺,这就是我将如何解决这个问题。例如:

function foo() {
    const promise = /*...foo's original logic...*/;
    promise.catch(error => {
        // ...report the error if that's appropriate...
        // **DO** include this handler even if you don't report it,// to avoid unhandled rejection errors
    });
}

请注意,foo 不会返回 promise。承诺完全在 foo 内处理。

如果在某些情况下您确实需要使用 promise 而其他情况下您不需要,请创建两个函数并根据情况使用适当的一个:

function originalFoo() {
    return /*...foo's original logic...*/;
}

function silentFoo() {
    originalFoo().catch(error => {
        // ...report the error if that's appropriate...
        // **DO** include this handler even if you don't report it,// to avoid unhandled rejection errors
    });
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。