我想知道如何等待socket.on调用。我知道可以使用here所述的回调,但这不适用于我的情况(至少我认为不是)。以下是我所拥有的:
index.html
...
socket.on('update_img', function(data) {
// Do something
});
scanner.addListener('scan', function(content) {
socket.emit('answer', content);
});
然后在服务器上:
...
client.emit('update_img', some_data);
...
client.on('answer', function(data) {
// do something with the answer
});
基本上发生了什么,我向前端发送了一些东西然后生成了一个图像。同时,浏览器中的库(instascan
,因此scanner.addListener)等待读取QR码并将其内容发送回服务器。所以我现在需要的是client.on('answer', ...);
等待这个答案。
有没有办法实现这个目标?
答案 0 :(得分:0)
基本上使用client.on(...)你将回调添加到该事件,这意味着每当从客户端发出“anwser”事件时,它将在服务器上被调用。
因此,如果确保客户端上的socket.emit(“anwser”)仅在从服务器发送映像后调用,则服务器只需要监听“anwser”事件并可能认为一切发生了预期。
因此,您实际上不必明确“等待”。
编辑:误解了你的流程。将更新我的答案