如何在nodejs中等待socket.on



我想知道如何等待socket.on呼叫。我知道可以使用此处描述的回调,但这不适用于我的情况(至少我认为不是(。以下是我所拥有的:

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', ...);等待这个答案。

有什么办法可以做到这一点吗?

本质上,

使用 client.on(...( 您将回调添加到该事件中,这意味着每当从客户端发出"anwser"事件时,它都会在服务器上调用。

因此,如果您确保客户端上的socket.emit("anwser"(仅在您从服务器发送图像后被调用,则服务器只需要侦听"anwser"事件,并可能假设一切都按预期发生。

因此,您实际上不必显式"等待"。

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

最新更新