gpt4 book ai didi

javascript - 由于异步函数,函数过早返回值

转载 作者:行者123 更新时间:2023-11-28 17:51:42 26 4
gpt4 key购买 nike

所以我想在计算完两个 query.on 后返回值 json10 。但是 query.on 是异步的,因此我在计算 json10 之前从函数返回。如何构造此函数,以便在从函数返回之前完成 query.on?

function getJsn(mystr){
var query = doc.query(mystr);
var json10;
query.on("row", function (row, result) {
result.addRow(row);
});
query.on("end", function (result) {
var json1 = JSON.stringify(result.rows, null, " ");
json10= json1;
var json = JSON.parse(json1);
for(var i = 0; i < json.length; i++) {
var obj = json[i];
}
})
return json10;
}

最佳答案

您将需要使用回调,因为您在 getJsn 内是异步的

function getJsn(mystr, cb){
var query = doc.query(mystr);
var json10;
query.on("row", function (row, result) {
result.addRow(row);
});
query.on("end", function (result) {
var json1 = JSON.stringify(result.rows, null, " ");
json10= json1;
var json = JSON.parse(json1);
for(var i = 0; i < json.length; i++) {
var obj = json[i];
}
cb(json10);
})
}

并这样调用它

getJsn(someStr, function(ret) {
console.log( ret ); // this should return json10
});

关于javascript - 由于异步函数,函数过早返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393217/

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