等待直到在NodeJ中触发事件

时间:2019-05-30 07:33:00

标签: node.js socket.io

我正在服务器中编写一个函数,以在客户端B发送请求时将数据从客户端A返回到客户端B。调用函数时,我的服务器将请求发送到客户端A,然后客户端A将数据发送回服务器。问题是如何使此功能等到服务器从客户端A接收到数据。

我已经使用setTimeout,它对我有用,但不灵活

//the code for receiving data from client A is written in another file
socketA.emit('getData', JSON.stringify(json));
//I want my function will stopping here
socketB.emit('sendData', somedata);

这是我用于从客户端接收数据的代码

socket.on('getData', (data) =>{
   storage_data = data;
});

我希望有一种方法可以在不使用setTimeout的情况下停止我的功能,或者如果我做错了什么,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:1)

我认为Promise绝对是一种方法(我不确定,但是请尝试一下)。 Asynchronous in NodeJS可能会有所帮助。

答案 1 :(得分:0)

这可以使用async / await语法完成

socket.on('getData', async (data) =>{
   storage_data = await data;
});

以供参考:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await