javascript - 从 socket.io 返回值

标签 javascript php jquery node.js socket.io

我在这里为我的网站使用 Node js 和 socket.io。我希望在执行以下函数时返回“newString”的值。现在我在函数内部获得“newString”的正确值。但我需要它在外面函数。

<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>

最佳答案

编辑:我添加了一个额外的函数 (updatePlayList),所以您可以“输出”播放列表。

您需要重新安排您的代码,以便订阅调用 (socket.on) 和播放列表构建方法 (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); 
}

关于javascript - 从 socket.io 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32025442/

相关文章:

jquery - ng-repeat 数据加载后如何加载 jQuery 插件指令

php - PHP 与 ASP.net 的使用

php - PHP/MySQL 消息系统

javascript - 如何在绘制第一个 'n' 点后向 highcharts 添加新点?

javascript - 重定向时自动选择选项卡

php - 仅当 count 为 0 时返回 false

javascript - 如何使用 PHP 和 JQuery 检查行是否为空并隐藏 div

javascript - Highcharts 基于数据系列值自定义工具提示显示

javascript - 如何将 FlashVars 参数更改为 URL 查询字符串?

javascript - 根据屏幕尺寸从特定 div 添加/删除类