gpt4 book ai didi

javascript - 如何从回调函数返回值

转载 作者:行者123 更新时间:2023-12-04 02:20:47 26 4
gpt4 key购买 nike

我有一个函数声明如下。我如何将函数/匿名函数中的值返回给父函数。

这是我正在尝试处理的代码

LB.getData = function(key) {
if(!key) return;

appAPI.db.async.get(key, function(value){
data = (value === null) ? null : JSON.parse(value);
return data
});
};


var myData = LB.getData('user');

最佳答案

看起来像一个异步函数。异步编程的全部要点是您不返回值。您订阅回调,这是您使用结果的地方。因为如果你返回值,这意味着你的函数的调用者将不得不等到这个值可用。等待是不好的,因为你会卡住这个来电者。

因此,一种可能性是为您的父函数提供一个回调参数,以允许此函数的使用者获取异步操作的结果:

LB.getData = function(key, callback) {
if(!key) return;

appAPI.db.async.get(key, function(value) {
var data = (value === null) ? null : JSON.parse(value);
// invoke the callback and pass the results to it
callback(data);
});
};

然后在消费父级时简单地提供一个回调函数:

LB.getData('user', function(data) {
// use the data here
alert(data.someProperty);
});

关于javascript - 如何从回调函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17261460/

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