【发布时间】:2021-01-13 09:52:38
【问题描述】:
我正在尝试使套接字从 .then() 内部加入房间,但它不起作用。我知道代码中的其他所有内容都是正确的,因为在将其(连接)移到 .then() 之外并进入同步函数之后它可以工作。我怎样才能让它以这种方式工作?
client.query('SELECT x FROM y WHERE f= $1;', ["example"])
.then((results) => {
socket.join('test');// join room
//more code that works properly...
})
【问题讨论】:
-
你能进一步详细说明什么不起作用吗?
-
@Evert 那么不起作用的是套接字没有加入房间。我很确定这是问题的方式是因为我有一个函数可以发出消息。当我在
.then()之外执行socket.join();时,它可以工作并且正在发送消息。当.join在.then()内时,根本不会发生发射(没有任何东西到达客户端)。 -
你的所有承诺链都有
.catch子句吗? -
是的,一切正常,唯一失败的是
socket.join()
标签: javascript node.js asynchronous promise socket.io