node.js - nodejs怎么同步查询数据
迷茫
迷茫 2017-04-17 11:58:27
[Node.js讨论组]

查询数据库返回数据

javascriptfunction get_result(mac, callback) {
    db.query('SELECT device_id from terminal_device WHERE mac=?', [mac], function (err, rows) {
        if (err) {
            return callback(err, rows);
        }
        callback(null, rows);
    });
};

调用上面方法

javascriptvar result = get_result('30-3A-64-91-52-01', function (err, rows) {
        console.log(rows[0][0] + "\t1")
        return rows[0][0];
    })
console.log(result + "\t2")

现在的问题:调用方法里输出的日志有结果,并且取值正确 ,但日志2输入的是undefined不知道怎么解决,应该是nodejs异步的问题,但不知道怎么解决

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(5)
阿神

promise

迷茫

显然 get_result函数,没有返回值~~~
你希望从get_result函数返回什么呢?

天蓬老师

nodejs在IO处理的时候本来就是异步的,这和js引擎的原理是分不开的,如果所有耗时操作都是同步的,那么必然会堵塞当前js主线程,导致并发请求出现排队堵塞的情形。js引擎正是将耗时操作交给libuv内部的线程池来处理,这样js主线程就等着接收libuv的事件轮询回掉就可以了。具体关于异步和原理可以参考我的博文:js异步之惑

巴扎黑

nodejs io 处理都是 异步的。。。

迷茫

你问的这个问题,说明你完全不了解回调啊异步啊这些东东

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号