Created
November 20, 2014 16:30
-
-
Save mrcnc/fdefdc79674e6e7da971 to your computer and use it in GitHub Desktop.
how do i make this work with async?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
app.get('/savedTracks', function (req, res) { | |
var savedTracks = []; | |
// get users | |
User.find().limit(10).exec(function(err, users) { | |
var numberOfAsyncRequests = users.length; | |
// for each user, get their saved tracks and add to the array of savedTracks | |
users.forEach(function(user, callback) { | |
// refresh access tokens for the user | |
spotifyApi.setRefreshToken(user['refresh_token']); | |
spotifyApi.refreshAccessToken().then(function(data) { | |
// set the access token for this user | |
spotifyApi.setAccessToken(data['access_token']); | |
console.log('The access token has been refreshed!'); | |
// now you can get the user's saved tracks | |
spotifyApi.getMySavedTracks({ limit: 10 }).then(function(data) { | |
// add tracks to list of savedTracks | |
savedTracks = savedTracks.concat(data['items']); | |
--numberOfAsyncRequests; | |
if(numberOfAsyncRequests === 0){ | |
//savedTracks = savedTracks.map(function(track) { return track.track }); | |
console.log('tracks', { items: savedTracks }); | |
res.render('tracks', { items: savedTracks }); | |
} | |
}, function(err) { | |
console.log('Could not get saved tracks', err); | |
}); | |
}, function(err) { | |
console.log('Could not refresh access token', err); | |
}); | |
}); | |
// how do i wait until the requests for mySavedTracks have returned? | |
//console.log('tracks', savedTracks); | |
//res.render('tracks', savedTracks); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment