1

您认为以下哪种情况在性能方面更好 (在服务中注入很多依赖项)?角度依赖注入性能

app.service('randomService', function(dependency1, dependency2, ...) { 
    //code 
}); 

app.service('randomService', function($injector) { 
    var service; 
    this.svFct = function (entityType, idList, entityList) { 
      switch (entityType) { 
        case 'product': 
         service = $injector.get('dependency1'); 
         service.get({}, onSuccess, onError); 
         break; 
        case 'order': 
         service = $injector.get('dependency2'); 
         service.get({}, onSuccess, onError); 
         break; 
        case 'actor': 
         service = $injector.get('dependency3'); 
         service.get({}, onSuccess, onError); 
         break; 
        ... 
        } 
    }; 
}); 
+0

这不是重复的。标记为dupe的问题是关于测试和'angular.mock.inject',它与主题无关。 – estus

回答

3

角喷射器的性能的影响是微不足道的。服务是在第一次注入时实例化的单例,在后续注入时从密钥/值存储中检索。

比较不正确,因为两个片段不包含相同的逻辑。 svFct方法可以多次调用,每次调用都会执行$injector.get(...)

在第一种情况下,有一个喷油器调用。在第二种情况下,有多个喷油器调用。