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



我是AngularJS的新手,在编写代码的过程中,尤其是Services.factory()的代码越来越大。举个例子,在一家工厂里,我有4个非常大的承诺。。最后,我把它们都绑定到一个$q.all([promise1(),promise2(),promise3(),romise4()]).then(function(response)。一切都很干净。。。然而,随着工厂的不断发展,管理代码的每一部分变得越来越困难。

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

这一切都是为了我自己在管理代码时的理智。。。以及通过简单地注释掉一行来激活或停用特定的promise,这反过来又不需要加载所有未使用的代码字节。

工厂可以在工厂中注入。一个大工厂可以被重新分解成更小的工厂。

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]);
   }
});

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

最新更新