在创建服务之前解决一个承诺很热吗?

时间:2014-10-27 14:26:36

标签: javascript angularjs angular-promise

在angular(1.0.8)中$routeProvider可以在重定向到控制器之前解析promise。我有一个共同的功能(在服务中)应该从两个不同的链接访问。我可以将相同的解决方案添加到$routeProvider中的两个不同路径,但这是重复的。有没有办法在创建服务之前解决承诺?

1 个答案:

答案 0 :(得分:0)

正如马夫兰所说,服务是单身人士。由于您绝对没有提供任何代码,因此答案将不准确,但概念将会如此。

您可以在服务中执行以下操作:

this.userData = false;
return {
    init: function(id) {
        fetchStuffForTheUser(id).then(function(response) {
            this.userData = response;
        });
    },
    getUserData: function() {
        return userData;
    }
 }

init将获取用户数据并将其存储在整个会话的this.userData中。之后,getUserData将始终为您调用它的每个控制器返回该数据。