javascript - 这里有什么理由返回 true 吗?

标签 javascript jquery

所以这种类型的结构出现在我项目中的大多数 javascript 文件中。我的问题是,是否有理由在 setElements 之后返回 true 并在“if”语句中调用它,如下所示:

App.ModuleName.setElements = function() {
    App.ModuleName.el = {
        title: $("#title")
    }
    return true;
};


App.ModuleName.init = function() {
    if (App.Common.checkDependency('ModuleName')) {
        if(App.ModuleName.setElements()) {
            //do something
        }
    }
};

而不是删除 return true 并只是这样做:

if (App.Common.checkDependency('ModuleName')) {
    App.ModuleName.setElements();
    //do something;
}

最佳答案

根据提供的代码,没有必要。考虑到这种情况,您的代码版本更加清晰。

但是你确实必须查看项目中某个函数的所有用法才能确定它是否可以重构。

想象一种情况,您正在执行某种 SQL 事务,但有些操作必须完成或回滚,这些操作不属于 SQL 事务的一部分。

App.OtherModuleName.init = function() {

    bool elementsWereSet = false;

    Transaction transaction = new Transaction(model);

    try {
        // Do some processing
        DoSomething(model, transaction);

        elementsWereSet = App.ModuleName.setElements();

        DoSomethingElse(model, transaction);

    } catch (Exception ex) {

        transaction.rollBack();

        if (elementsWereSet) {
            manuallyRollBackElements();
        }
    }
};

请注意,如果在 setElements 返回 true 之前的任何位置抛出异常,elementsWereSet 将为 false

如果发生异常, bool 值将确定您是否必须手动回滚任何内容。

还有其他方法可以实现这种动态,但我会说我在一个主要软件中至少使用过一次这种模式。

关于javascript - 这里有什么理由返回 true 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42077172/

相关文章:

javascript - 列出列出的 json 数组内的对象

jQuery 限制之后的数字数量

javascript - 如何使用 Javascript 从外部网页提取特定输入字段值

javascript - 使用 AJAX 从 PHP 函数获取 JSON 数据

javascript - 如何使用nodejs、expressjs从mongodb获取数据

javascript - AddEventListener 不适用于 InAppBrowser - IONIC 2

javascript - 遍历多个 div 并将信息提取到数组中?

javascript - 如何使用JQUERY增加或减少数量

javascript - 无需迭代将javascript数组中的所有值初始化为0

javascript - 是否可以从父窗口关闭子窗口?