gpt4 book ai didi

javascript - 闭包和回调

转载 作者:行者123 更新时间:2023-12-04 17:55:22 25 4
gpt4 key购买 nike

我正在处理一个数据库函数,需要从 fetchAll 返回结果,这样我就可以在我的代码中的其他地方使用它,但我不确定如何去做:

function fetchAll(sql,params,tableref){
var fields = new Array();
var resultout = new Array();

for (i in tableref){
fields.push(i);
}

getResults(sql,params,fields,function(results){
// I WANT TO RETURN RESULTS
resultout.push(results);
});

// TO HERE SO I CAN RETURN from Fetchall
console.log(resultout);
}

function getResults(query,params,fields,callBack){
var result = new Array();
thisDB.transaction(function (tx) {
tx.executeSql(query,params, function(tx, rs){
for(var i=0; i<rs.rows.length; i++) {
var row = rs.rows.item(i);
var rowresults = new Object();

for (x=0;x<fields.length;x++){
rowresults[fields[x]] = row[fields[x]];
}

result.push(rowresults);
}
callBack(result);
});
});

return result;
}

我想我遗漏了一些明显的东西。

谢谢

安东尼

最佳答案

如果我没有正确理解你的问题,要查看你需要的结果

function fetchAll(sql,params,tableref){
var fields = new Array();
var resultout = new Array();

for (i in tableref){
fields.push(i);
}

getResults(sql,params,fields,function(results){
// I WANT TO RETURN RESULTS
resultout.push(results);
console.log(resultout);
});
}

回调将在“之后”执行,因此基本上在您的示例中您会看到一个空结果。这是因为回调的异步性质。

关于javascript - 闭包和回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13975906/

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