有没有办法执行mysql查询同步?
之类的东西getUser:function(user_id){
return mysql_connection.query("select ... ");
},
像这样使用它
var user = getUser(id);
答案 0 :(得分:1)
一般来说,答案是否定的,除非您使用绑定到暴露此类同步接口的libmysqlclient(或类似)。
您希望避免使用此类同步接口,因为它们实际上会阻止您在执行同步功能时执行任何其他操作。例如,如果您正在运行服务器,则意味着您无法为其他客户端提供服务。他们都必须至少等待你的同步功能完成。
虽然有很多方法可以处理异步任务,包括"手册"回调(显然),基于回调的辅助库,如async
,Promises,生成器,async / await等。其中一些甚至创建了同步API的错觉,而实际上并不是同步的。