在第一个示例代码中,一切都按预期工作 - 在每次页面路由更改时,我们检查一些条件 ( $timeout
) 并解决一个承诺:
var rulesFactory
在我们移动到的第二个示例中app.factory('rulesFactory')
,现在它可以工作一次:
是缓存吗?如何解决这个问题以提高代码的可重用性?
在第一个示例代码中,一切都按预期工作 - 在每次页面路由更改时,我们检查一些条件 ( $timeout
) 并解决一个承诺:
var rulesFactory
在我们移动到的第二个示例中app.factory('rulesFactory')
,现在它可以工作一次:
是缓存吗?如何解决这个问题以提高代码的可重用性?
您的代码rulesFactory
只运行一次 - 第一次实例化服务本身。
它在第一次解决时这样做:
它在第二次解析时这样做:
解决这个问题的方法是让 rulesFactory 返回一个函数,该函数将再次运行超时 - 每次你想要它的时候。
此外, $timeout 本身返回一个承诺,所以你可以只返回一个 $timeout :-)