【发布时间】:2011-06-27 23:21:17
【问题描述】:
我有一个如下所示的简化函数:
function(query) {
myApi.exec('SomeCommand', function(response) {
return response;
});
}
基本上我希望它调用myApi.exec,并返回在回调 lambda 中给出的响应。但是,上面的代码不起作用,只是立即返回。
只是为了一个非常骇人听闻的尝试,我尝试了以下没有用的方法,但至少你明白我想要实现的目标:
function(query) {
var r;
myApi.exec('SomeCommand', function(response) {
r = response;
});
while (!r) {}
return r;
}
基本上,什么是“node.js/event 驱动”的好方法?我希望我的函数等到回调被调用,然后返回传递给它的值。
【问题讨论】:
-
或者我在这里完全错误的方式,我应该调用另一个回调,而不是返回响应?
-
This 在我看来是最好的 SO 解释 为什么忙循环不起作用。
-
不要试图等待。只需在回调本身结束时调用下一个函数(依赖于回调)
标签: javascript multithreading callback node.js