node.js-关于Node.js等待异步返回结果的问题。

作者:用户 来源:互联网 浏览:268 次 时间:2016-01-05 14:25:45

node.js

node.js-关于Node.js等待异步返回结果的问题。 - 摘要: 关于Node.js等待异步返回结果的问题。懂Node.js的大神帮忙解决各位问题吧!!问题:mysql查询数据的函数,返回查询结果,但由于query异步,因此该函数在未查询到结果前已经返回,代码如下:

问题描述

关于Node.js等待异步返回结果的问题。

懂Node.js的大神帮忙解决各位问题吧!!问题:mysql查询数据的函数,返回查询结果,但由于query异步,因此该函数在未查询到结果前已经返回,代码如下:
function func_GetTableCount(tableName) {
var json = '';
if (connection != null) {

var sql = ""SELECT * FROM "" + tableName;
connection.query(sql function (err rows) {
if (err) {
console.log('Message:GetTableCountFalseSQL=' + sql);
console.log(err);
}
else {

connection.end();

json = JSON.stringify(rows);
console.log(json);

}
});
}

return json;
}
该函数始终返回空字符串!跪求大神帮忙。。。

解决方案

你都知道是异步的了,肯定是没执行query回调就已经return了,你的函数增加回调,而不是直接return

    function func_GetTableCount(tableNamecallback) {        var json = '';        if (connection != null) {            var sql = ""SELECT * FROM "" + tableName;            connection.query(sql function (err rows) {                if (err) {                    console.log('Message:GetTableCountFalseSQL=' + sql);                    console.log(err);                }                else {                    connection.end();                    json = JSON.stringify(rows);                    callback(json);////////                }            });        }        //return json;    }    func_GetTableCount('表名' function (d) { alert(d) });//这样调用    //而不是var d=func_GetTableCount('表名');alert(d)
【云栖快讯】哪个编程语言最热门?各个专业领域的技术趋势是什么?如何才能更快速的踏上技术进阶之路……云栖社区2017中国开发者大调查火热进行!答卷可抽奖,红轴机械键盘、天猫精灵,丰富好礼大概率抽取  详情请点击
云栖社区(yq.aliyun.com)为您免费提供node.js-关于Node.js等待异步返回结果的问题。相关信息,包括 node.js 的信息 ,所有node.js-关于Node.js等待异步返回结果的问题。相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_89360,您可以点击node.js-关于Node.js等待异步返回结果的问题。-手机站访问。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

开发者常用软件,超百款实用软件一站式提供

热点导航