首页 > nodejs怎么同步查询数据

nodejs怎么同步查询数据

查询数据库返回数据

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异步的问题,但不知道怎么解决


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


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


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


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


promise

【热门文章】
【热门文章】