2017-08-20 8 views
0

socket.ioリクエストから情報を取得するとすぐに返信機能を終了します。それを受信したときSocketio返信情報

function getSession(key) { 
     socket.emit('client_get_session', {key : key}); 
     socket.on('server_send_session', function(data) { 
      return data; 
     }); 
} 

は、それがデータを返す必要がありますが、機能は、データが実際に谷が来る前に終了するようだ:関数はこのようなものです。 console.log()でそれを実行すると、最初に関数が終了し、コンソールログに実際のデータが表示されます。

これを回避して 'データ'を返すにはどうすればできますか?

答えて

2

コールバックは...約束はあまりにもあり、参考になっている

function getSession(key, cb){ 
    socket.emit('client_get_session', {key : key}); 
    socket.on('server_send_session', function(data) { 
     if(!data) return console.error('beep error occured'); 
     cb && cb(data); 
    }); 
} 

getSession(123,function(resData){ 
    console.log('result',resData); 
}) 
関連する問題