Floby / node-libspotify

Node bindings for the libspotify C library
projects.flo.by/node-libspotify/
102 stars 66 forks source link

Error when trying to retrieve playlists #36

Open ls12styler opened 11 years ago

ls12styler commented 11 years ago

Hi again! You guys are probably going to quite bored with my 'issues'.

I'm trying to get the users playlists, but all I keep getting is an empty error when I run my script.

Output:

➜  spode git:(master) ✗ node src/server.js

Error:

My script looks like this:

// Skip all the require stuff
session.login(cred.login, cred.password);

session.once('login', function (err) {
    if(err) this.emit('error', err);

    // I'm logged in, now what?!
    // Let's get a list of playlists!
    var plContainer = session.getPlaylistcontainer();
    plContainer.getPlaylists(function (a) {
        console.log(a);
    });
});

I would expect to see whatever 'a' contains in the callback.

Having followed the code path, it appears as though the error is coming from PlaylistContainer::_readyOrThrow. I'm guessing the sp_playlistcontainer isn't loaded by the time the callback triggers. Any idea why?

Thanks,

ls12styler commented 10 years ago

I don't suppose anyone has an idea why the error I'm getting is empty? Or more importantly, why it's happening?

ls12styler commented 10 years ago

I think the problem is that I'm trying to use the Playlistcontainer before it's ready. I've just wrapped the fetching in a setTimeout with a 1000ms timeout and it then works as expected.

Floby commented 10 years ago

I must admit i've been lazy at documenting stuff all around. Maybe @IanCole and @ronaldevers can help us out on this, as they've written most of the codebase for playlists.

getPlaylists() should check that all playlists are loaded before calling the callback. Maybe there's something funny going down in the meantime.