如何将大型Service Factory()分解为更小的代码块?

时间:2016-05-12 22:30:01

标签: angularjs module factory angularjs-service

我对AngularJS很新,因为我正在编写代码,特别是我的服务.factory()已经变得非常大了。举个例子,在一个工厂里我有4个非常大的承诺......最后我将它们全部捆绑到$ q.all([promise1(),promise2(),promise3(),promise4()])。然后(功能(响应)。这一切都干净利落......然而,随着工厂的发展壮大,管理每段代码变得越来越难。

我正在寻找一种方法,可以让我清理这个巨型.factory()并允许我从外部文件中将代码加载到工厂中或者打破.factory但仍然可以使用$ q。所有(...)让他们一次全部处理...或者其他一些我没有想到/意识到的方法。

这完全是为了我自己在管理代码方面的理智......以及通过简单地注释掉一行来激活或停用特定的承诺,而这一行又不需要加载所有那些未被使用的代码字节。 / p>

1 个答案:

答案 0 :(得分:1)

工厂可以注入工厂。大型工厂可以重新计入较小的工厂。

app.factory("promiseService1", function() {
    return function promise1 () {
        var promise1;
        //code here
        return promise1;
    };
});     

app.factory("promiseService2", function() {
    return function promise2 () {
        var promise2;
        //code here
        return promise2;
    };
});

然后将这些工厂注入顶级工厂。

app.factory("megaService", function($q, promiseService1, promiseService2) {
    return function megaPromise() {
        var promise1 = promiseService1();
        var promise2 = promiseService2();
        return $q.all([promise1, promise2]);
   }
});

除了使大型工厂的代码更易于管理外,各个工厂还可以自行进行单元测试。