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(...)

在第一種情況下,有一個噴油器調用。在第二種情況下,有多個噴油器調用。