从socket.io返回值

在这里,我使用节点js和socket.io为我的网站。我希望返回值'newString',而执行下面的函数。现在我得到正确的值'newString'里面的函数。但我需要它的function之外。

<script> function createSocketPlayList(){ var page = 'notification_playlist'; var socket = io.connect('http://localhost:8000', { query: "from=<?php echo $_SESSION['userId']?>&page="+page }); socket.on('notification_playlist', function (data_playlist) { var usersList_playlist = ""; var musicTitle = ""; var myPlaylist = ""; $.each(data_playlist.users_playlist,function(index,user){ musicTitle = "<?php echo addslashes($objCommon->html2text($allMyPlayList['music_title']))?>"; usersList_playlist += "{ "; usersList_playlist += "mp3:'<?php echo SITE_ROOT?>uploads/music/"+user.music_url+"',title:'"+musicTitle+" ',artist:'Sanjeev Darshan | © Eros International Media Ltd',rating:4, buy:'#',price:'0.99',duration:'',cover:'<?php echo SITE_ROOT?>uploads/music/"+user.music_thumb+"',releaseddate:'17-05-2015'"; usersList_playlist += " },"; }); var newString = usersList_playlist.substr(0, usersList_playlist.length-1); }); } </script> 

编辑:我已经添加了一个额外的function(updatePlayList),所以你有播放列表“出”。

您需要重新安排您的代码,使其具有如下分隔的订阅调用(socket.on)和播放列表构build方法(createSocketPlayList):

 var page = 'notification_playlist'; var socket = io.connect('http://localhost:8000', { query: "from=<?php echo $_SESSION['userId']?>&page="+page }); socket.on('notification_playlist', updatePlayList); function updatePlayList(data_playlist) { var playlist = createSocketPlayList(data_playlist); // Update your list wherever it is on the page. } function createSocketPlayList(data_playlist){ var usersList_playlist = ""; var musicTitle = ""; var myPlaylist = ""; $.each(data_playlist.users_playlist,function(index,user){ musicTitle = "<?php echo addslashes($objCommon->html2text($allMyPlayList['music_title']))?>"; usersList_playlist += "{ "; usersList_playlist += "mp3:'<?php echo SITE_ROOT?>uploads/music/"+user.music_url+"',title:'"+musicTitle+" ',artist:'Sanjeev Darshan | © Eros International Media Ltd',rating:4, buy:'#',price:'0.99',duration:'',cover:'<?php echo SITE_ROOT?>uploads/music/"+user.music_thumb+"',releaseddate:'17-05-2015'"; usersList_playlist += " },"; }); return usersList_playlist.substr(0, usersList_playlist.length-1); }