I am having a problem because chrome api functions are async and I cant get its return value. Consider the following code. I am using angularjs
    $scope.storageGet = function(param) {
        var returnData; 
        chrome.storage.local.get(param.storageName, function(data) {
            returnData = data;
        });
        return returnData;
    };
And when I tried to call it like this:
    console.log($scope.storageGet({'storageName': 'users'}));
It prints 'undefined' in the console. What I want to see is the obect of users stored in chrome storage. Well, I'm sure that I have data in chrome storage.
You cannot return data that is generated by an async function such as chrome.storage.local.get, because more likely your function will finish executing before the async function executes. This is why your function returns undefined, which is the default value of returnData.
A good alternative will be to make your function async as well by using a callback function.
$scope.storageGet = function(param, callback) {
    chrome.storage.local.get(param.storageName, function(data) {
        callback(data);
    });
};
Now you can call your function this way:
$scope.storageGet(param, function(returnData) {
    // do something with returnData
});
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With