繁体   English   中英

如何修复@typescript-eslint/no-misused-promises 错误

[英]How to fix @typescript-eslint/no-misused-promises error

我有一个用于 PrimaryButton class 的 onClick() 方法。我从 eslint 检查中得到了 @typescript-eslint/no-misused-promises 错误。 代码如下:

onClick = { () =>
    Utils.getName(a, b).then(
        (name) => {
            Utils.deleteThing(name, x, y);
        })
    }

我应该如何修复我的代码以避免此错误? 感谢您的帮助。 谢谢!

更新:eslint配置如下在此处输入图像描述

错误信息在 onClick() 行: 在此处输入图像描述

该错误指出预期返回无效。 但是,您返回的是 promise。

onClick = { () =>
    Utils.getName(a, b).then(
        (name) => {
            Utils.deleteThing(name, x, y);
        })
    }

你写箭头 function 的方式,你返回下面的代码(一个承诺)而不是运行它并且什么都不返回:

Utils.getName(a, b).then(
            (name) => {
                Utils.deleteThing(name, x, y);
            })

但是,如果您这样编写代码,则会返回 void 并实际运行代码:

onClick = { () => {
    Utils.getName(a, b).then(
        (name) => {
            Utils.deleteThing(name, x, y);
        })
    }
}

关键是箭头 function 是如何工作的。 如果您在=>之后省略了{ } ,则返回隐含为=>之后的单个语句,这不是您想要的。 您不想返回Utils.getName function,您只是想让它运行。 有关更多信息,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM