Dịch vụ của tôi cần truy xuất giá trị không đồng bộ, nhưng khi tôi có nó, tôi muốn sử dụng phiên bản được lưu trong bộ nhớ cache của giá trị. Khi hai bộ điều khiển gọi dịch vụ này, tôi muốn người đầu tiên lưu trữ giá trị đã truy xuất và giá trị thứ hai sử dụng giá trị được lưu trong bộ nhớ cache, nhưng theo nhật ký, tôi không bao giờ tìm thấy giá trị được lưu trong bộ nhớ cache. Khi điều này chạy, tôi thấy một thông điệp tường trình cho thấy giá trị được lưu trữ, sau đó, khi tôi đi theo một tuyến đường góc tới một bộ điều khiển khác, tôi không thấy dịch vụ tìm thấy giá trị được lưu trong bộ nhớ cache. Tại sao nó không chạy theo mong đợi của tôi ** **Bộ nhớ cache dịch vụ góc có giá trị
angular.module('myApp.services').factory('Config', function() {
var Config = { };
Config.currentYear = function() {
if (Config._currentYear) {
// sadly, we never execute here
console.log("returning cached year");
return Parse.Promise.as(Config._currentYear);
}
return Parse.Config.get().then(function(config) {
console.log("caching year");
Config._currentYear = config.get("currentYear");
return Config._currentYear;
});
};
return Config;
});
Một vài ghi chú: (1) Tôi tên là thuộc tính _currentYear lưu trữ, thêm dấu gạch dưới để tránh va chạm với các tên hàm. Không chắc tôi có cần làm thế không. (2) Tôi trả lời một lời hứa hoàn thành khi giá trị được lưu trữ, vì vậy hàm luôn trả về một lời hứa ... cũng không chắc chắn nếu cần thiết, nhưng con số nó không thể bị tổn thương.
Vậy vấn đề chính xác là gì? – dfsq
Được nêu trong câu hỏi ngay bên dưới mã. Tôi đã chuyển phần câu hỏi phía trên mã số – user1272965
Đã kiểm tra các câu hỏi tương tự khác? http://stackoverflow.com/questions/15100020/using-angular-service-to-share-data-between-controllers – ochi