我最近遇到了一家工厂,模棱两可地类似于以下所示:
.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的核心构建而不告诉任何人过程中已经开始的东西时,宣布工厂自行启动这是一个坏主意吗?
是的,那真的很糟糕!当事情自动完成时,尤其是在作为内部行为的角度工厂中,很难维护和跟踪问题。
我建议从以后可以跟踪和了解它的地方手动启动它。