如何使用if-error-return模式满足eslint中的“一致返回”规则?

时间:2019-05-03 09:25:59

标签: javascript eslint

我有一些代码:

foo((error, data) => {
    if (error) {
        return;
    }

    // do something with data
});

这将导致返回“一致返回”错误。我了解这是一个自以为是的事情,但是,满足这一规则的合理方法是什么?

我的方法是否正确?我应该使用return有效地在回调主体中“中断”吗?在执行return行之后是否需要添加一个空的// do something with data语句?

1 个答案:

答案 0 :(得分:0)

一致返回表示您的函数应始终返回相同类型的数据。因此,如果在错误情况下返回undefined,在其他情况下也应返回undefined

foo((error, data) => {
    if (error) {
        return;
    }

    return;
});

如果您的函数应该在错误为false时返回数据,则可能您不想返回undefined并抛出Error

foo((error, data) => {
    if (error) {
        throw new Error()
    }

    return data; // or anything else
});