&を使用してchrome.storageを使用して&を設定しようとしたときに、ランダムに生成されたIDを取得するが、そのIDを取得しないときに、以下の私のコードです:私は未定義取得しています私のコントローラでこのgetUniqueIdを呼び出すときchrome.storage.sync.get値が返されない - 角型サービス
angular.module('chromeExtension')
.service('customService', ['$window', '$timeout', function ($window, $timeout) {
this.getUniqueId = function() {
return chrome.storage.sync.get('unique_app_id', function(data) {
console.log(data.unique_app_id); // Here I am getting the id
if(data.unique_app_id) {
return data.unique_app_id;
} else {
uniqueId = Math.round((Math.pow(36, 20 + 1) - Math.random() * Math.pow(36, 20))).toString(36).slice(1);
chrome.storage.sync.set({'unique_app_id': uniqueId});
return uniqueId;
}
});
}
}]);
だから、私も使用されるタイムアウトは、それが理由ではなく運かもしれないのでchrome.storage.syncは、非同期呼び出しであるので、思いました。以下は、私はその関数を呼び出しています私のコントローラである:
angular.module('chromeExtension')
.controller('sampleController',['$scope', 'customService', function ($scope, customService) {
$scope.uniqueId = customService.getUniqueid();
console.log("Unique: ", $scope.uniqueId); // this is giving me undefined or null
}]);
未定義とは何ですか? 'chrome.storage'または' data.unique_app_id'ですか?前者の場合は、 'storage'パーミッションを宣言していますか? –
getUniqueIdの呼び出し時の戻り値は未定義です。その値はdata.unique_app_idでなければなりません&yes私は許可を宣言しました –
'chrome.storage.sync.get'は非同期呼び出しであるため、' getUniqueId' ? –