所以我想在计算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;
}
答案 0 :(得分:3)
由于您在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
});