function findById(id) {
var fullName = "";
client.emit("findById", id, function(result){
fullName = result.fullName;
});
}
我想从函数 findById 中找到全名
当我调用函数 findById result = ""
function findById(id) {
var fullName = "";
client.emit("findById", id, function(result){
fullName = result.fullName;
});
}
我想从函数 findById 中找到全名
当我调用函数 findById result = ""
要使其同步,您必须使用循环锁定函数。我不建议这样做。
function findById(id) {
var fullname, waiting = true;
client.emit("findById", id, function(result){
fullname = result.fullName;
waiting = false;
});
while (waiting);
return fullname;
}
最好接受该方法本质上是异步的事实,并将结果传递给回调:
function findById(id, callback) {
client.emit("findById", id, function(result){
callback(result.fullName);
});
}
用法将是:
findById(id, function(fullName) { /* ... */ });
如果嵌套回调在您的应用程序中成为一个令人头疼的问题,那么有一些流控制库,如async(在 Node 和浏览器中运行),可以让事情变得更清晰、更具可读性。