pis*_*ipt 2 javascript function callback
我有一个函数声明如下.如何将函数/匿名函数中的值返回到父级.
这是代码,我正在努力
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');
Run Code Online (Sandbox Code Playgroud)
看起来像一个异步函数.异步编程的全部意义在于您不返回值.您订阅回调,这是您使用结果的地方.因为如果返回值,则意味着函数的调用者必须等到该值可用.等待是坏事,因为你会冻结这个来电者.
因此,一种可能性是为您的父函数提供一个回调参数,该参数允许此函数的使用者获取异步操作的结果:
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);
});
};
Run Code Online (Sandbox Code Playgroud)
然后在使用父级时简单地提供回调函数:
LB.getData('user', function(data) {
// use the data here
alert(data.someProperty);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
883 次 |
| 最近记录: |