节点Js函数具有不一致的返回点

时间:2014-04-11 13:41:45

标签: node.js

Provider.prototype.configure = function(callback) {
var that = this;

if (that.getConfiguration() != undefined) {
    return callback(null);
}

models.configuration.all({where: {name: 'provider'}}, function (error, defaultProviderConfiguration) {
    if (error) {
        return callback(error);
    }
    that.setConfiguration(defaultProviderConfiguration[0]);
    return callback(null);
});
};

请帮我修复不一致的返回点。

Provider.getConfiguration()是同步方法。

Provider.setConfiguration()是同步方法。

models.configuration.all()是一种异步方法。

1 个答案:

答案 0 :(得分:1)

假设问题是您有时同步并且有时异步调用回调,您可以使用process.nextTick推迟调用回调直到下一个事件循环滴答:

if (that.getConfiguration() != undefined) {
    return process.nextTick(callback);
}

虽然我不确定你的IDE是在抱怨什么。您的IDE可能并不喜欢您如何及早拯救"返回,可以看作是一种意大利面条代码。您可以通过重写这样的函数来关闭它:

if (that.getConfiguration() != undefined) {
    process.nextTick(callback);
} else {
    // rest of the function
}

对于像这样的小型功能,我不确定它是不是很重要。