gpt4 book ai didi

javascript - 获取函数内部异步函数的返回数据

转载 作者:数据小太阳 更新时间:2023-10-29 05:02:27 25 4
gpt4 key购买 nike

我遇到了一个问题,因为 chrome api 函数是异步的,我无法获得它的返回值。考虑以下代码。 我正在使用 angularjs

    $scope.storageGet = function(param) {
var returnData;

chrome.storage.local.get(param.storageName, function(data) {
returnData = data;
});

return returnData;
};

当我尝试这样调用它时:

    console.log($scope.storageGet({'storageName': 'users'}));

它在控制台打印'undefined'。我想看到的是存储在 chrome 存储中的用户对象。好吧,我确定我在 Chrome 存储中有数据。

最佳答案

您不能返回由 chrome.storage.local.get 等异步函数生成的数据,因为您的函数更有可能在异步函数执行之前完成执行。这就是您的函数返回 undefined 的原因,这是 returnData 的默认值。

一个很好的替代方法是使用回调函数使您的函数也异步。

$scope.storageGet = function(param, callback) {
chrome.storage.local.get(param.storageName, function(data) {
callback(data);
});
};

现在你可以这样调用你的函数了:

$scope.storageGet(param, function(returnData) {
// do something with returnData
});

关于javascript - 获取函数内部异步函数的返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301382/

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