我的项目中有一个函数 ( foo
) 返回一个承诺,但通常不需要等待承诺解决,因此永远不会附加 .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
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句