我最近遇到了一家工厂,模棱两可地类似于以下所示:

.factory("MyFactory", ['$interval', function($interval) {
    var factoryObj;

    factoryObj.setCheckupTime = function(intervalMs) {
        var checkupInterval = $interval(function() {
            // do checkup logic...
        }, intervalMs);
    };

    factoryObj.setCheckupTime(60000);

    return factoryObj;

}]);


问题是返回之前的行:

factoryObj.setCheckupTime(60000);


这行感觉不对,因为我们是让单例自动对自身执行操作,而不是按某些相关的代码单元执行操作。

我想就此事征询他人的意见;这是否正式违反了Angular的任何最佳实践,或者是否有关于应如何使用Singleton的任何规则?

我也不确定如何描述这个问题,因为我从未遇到过。这里发生了什么另一种术语/术语?

最佳答案

因此,当工厂由angular的核心构建而不告诉任何人过程中已经开始的东西时,宣布工厂自行启动这是一个坏主意吗?

是的,那真的很糟糕!当事情自动完成时,尤其是在作为内部行为的角度工厂中,很难维护和跟踪问题。

我建议从以后可以跟踪和了解它的地方手动启动它。

09-17 10:31