我正在服务器中编写一个函数,以在客户端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
的情况下停止我的功能,或者如果我做错了什么,请告诉我。
谢谢。
答案 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