nodejs没有回调的mysql

时间:2016-11-16 18:23:13

标签: mysql node.js synchronous

有没有办法执行mysql查询同步?

之类的东西
getUser:function(user_id){
  return mysql_connection.query("select ... ");
},

像这样使用它

var user = getUser(id);

1 个答案:

答案 0 :(得分:1)

一般来说,答案是否定的,除非您使用绑定到暴露此类同步接口的libmysqlclient(或类似)。

您希望避免使用此类同步接口,因为它们实际上会阻止您在执行同步功能时执行任何其他操作。例如,如果您正在运行服务器,则意味着您无法为其他客户端提供服务。他们都必须至少等待你的同步功能完成。

虽然有很多方法可以处理异步任务,包括"手册"回调(显然),基于回调的辅助库,如async,Promises,生成器,async / await等。其中一些甚至创建了同步API的错觉,而实际上并不是同步的。