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")
你问的这个问题,说明你完全不了解回调啊异步啊这些东东
nodejs io 处理都是 异步的。。。
nodejs在IO处理的时候本来就是异步的,这和js引擎的原理是分不开的,如果所有耗时操作都是同步的,那么必然会堵塞当前js主线程,导致并发请求出现排队堵塞的情形。js引擎正是将耗时操作交给libuv内部的线程池来处理,这样js主线程就等着接收libuv的事件轮询回掉就可以了。具体关于异步和原理可以参考我的博文:js异步之惑
显然 get_result函数,没有返回值~~~
你希望从get_result函数返回什么呢?
promise