gpt4 book ai didi

javascript - AngularJS 服务 - 公开可变状态数据

转载 作者:行者123 更新时间:2023-12-03 10:44:23 24 4
gpt4 key购买 nike

我有一个 Angular 工厂,Session。它公开了一个方法join,该方法执行一些身份验证操作,然后通过同一工厂公开任意资源(下面的代码片段应该说明)。

在公开该属性方面是否有最佳实践?我看到的解决方案:

  • 公开 getter 方法

  • 使用服务而不是工厂并使用 this

  • 在工厂做这样的事情:

    // Public API
    var exports = {
    join: function(params, callback) {
    authenticate(params, function(err, data) {
    if (!err) {
    exports.arbitraryResource = createArbitraryResource(data.resource);
    }
    callback(err, data.sessionKey);
    });

    }
    };

    return exports;

真的很想听听其他开发人员如何公开工厂的可变属性。我想避免使用 getter 方法,只是因为它们写起来很笨拙,而且它看起来就像这里的反模式。

最佳答案

我会编写一个方法 getResource() ,如果资源为空,它将进行身份验证调用,否则返回先前调用设置的资源。这样,调用代码就不会关心如何获取资源。

app.factory('myService', function() {

var resource = null;

return {
getResource: function(callback) {
if (resource) {
callback(null, resource);
} else {
authenticate(params, function(err, data) {
resource = data
callback(err, data);
});

}
}
}

})

关于javascript - AngularJS 服务 - 公开可变状态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com