使用socket.io处理socket.emit()错误

我在用

$('btn').click(function() { socket.emit('load more', function (objs) { // do something }); }); 

在客户端从服务器获取对象。

但是有时候连接会丢失,没有任何反应。 我怎样才能使error handling,使我可以告诉用户,服务器不回答,而不是让事情发生,因为它是现在?

编辑

所以我想要的是类似的东西

 $('btn').click(function() { var emit = socket.emit('load more', function (objs) { // do something }); if (!emit) { console.log("It didn't work. Maybe you lost connection or the server is not running."); } }); 

我知道我不能这样做,但是使用承诺还是可以的?

emit第二个参数是我们需要传递'load more'事件的数据。

如果你只是想让服务器知道你需要的数据,而不传递任何额外的信息,只是做socket.emit('load more') 。 在服务器中,监听事件'load more' ,并将数据发送到具有特定event-name客户端。 在客户端,监听事件'event-name'并在callback中接收数据,

 socket.on('event-name', function(data_from_server){ //do something }); 

如果你想处理的情况下,服务器不发送任何数据,然后等待一段时间发送事件'load mode'并处理它。