因此,在计算两个json10之后,我想返回值query.on。但是,query.on是异步的,所以在计算json10之前,我从函数返回。如何构造这个函数,以便在从函数返回之前完成query.on's?
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;
}发布于 2017-07-29 19:29:10
您将需要使用回调,因为您在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
});https://stackoverflow.com/questions/45393217
复制相似问题