如何在nodejs

时间:2017-11-13 12:30:31

标签: javascript node.js socket.io

我想知道如何等待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', ...);等待这个答案。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

基本上使用client.on(...)你将回调添加到该事件,这意味着每当从客户端发出“anwser”事件时,它将在服务器上被调用。

因此,如果确保客户端上的socket.emit(“anwser”)仅在从服务器发送映像后调用,则服务器只需要监听“anwser”事件并可能认为一切发生了预期。

因此,您实际上不必明确“等待”。

编辑:误解了你的流程。将更新我的答案