我有一个按钮,它与服务器进行一些通信以检查输入值(通过输入框)是否已经存在。该代码是下面的:socket.io - socket.on等待承诺
$("#button").click(function() {
var exists = false;
var name = $("#name").val();
socket.emit("check", name);
socket.on("checkReturn", function (data) {
exists = data.result;
});
if (exists) {
console.log("exists")
} else {
if (name.length > 0) {
socket.emit("create", name);
}
}
});
});
的问题是,checkReturn
呼叫是异步的,因此,代码进行而不实际等待结果。我如何确保checkReturn
第一次完成,然后才能执行其余的代码?
这个解决方案对我来说更好。你能在几行中向我解释那个fn()回调函数是如何工作的?我无法理解它。 – Tamas
'fn()'是一个回调函数。在JavaScript中,您可以将一个函数传递给另一个函数,然后再调用它。在这种情况下,Socket.IO实现了“确认”,您将功能传递给服务器,服务器调用该函数。 – hexacyanide
谢谢,我很感激。 – Tamas