function findById(id) {
var fullName = "";
client.emit("findById", id, function(result){
fullName = result.fullName;
});
}
我想从函数findById
中找到全名当我调用函数findById result =“”
时答案 0 :(得分:3)
要使其同步,您必须使用循环锁定该函数。 我不建议这样做。
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和浏览器中运行),可以使事情更清晰,更易读。