2

Here i am using node js and socket.io for my website.i want return value of 'newString' while executing the below function.Now i am getting correct value for 'newString' inside the function.But i need it outside the 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>

1 Answer 1

1

Edit: I have added an extra function (updatePlayList) so you have the playlist "out".

You need to re-arrange your code so it has the subscribe call (socket.on) and playlist building method (createSocketPlayList) separated like this:

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); 
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.