【发布时间】:2013-05-11 07:11:12
【问题描述】:
我怎样才能做到这一点
var asyncToSync = syncFunc();
function syncFunc() {
var sync = true;
var data = null;
query(params, function(result){
data = result;
sync = false;
});
while(sync) {}
return data;
}
我试图从异步一中获取同步功能, 我需要它来使用 FreeTds 异步查询作为同步查询
【问题讨论】:
-
异步回调始终在函数堆栈清除后运行。因此,不可能同步返回 ansyc 结果。任何启动异步操作的同步函数都必须在异步操作开始之前返回。 相反,您想让外部函数也异步,方法是让它接受一个在
query的回调内部调用的回调。 -
查询函数是否执行数据库调用?如果是这样,DB 客户端可能会提供该查询功能的同步版本。
-
重复:How to block on asynchronous functions in JavaScript(但没有多少好的解释性答案)
标签: javascript node.js asynchronous