Requesting Resources Until Exhaustion

When an API has a 'next' feature, I use the following pattern to obtain all the results:

/** Obtains a list of channels followed by a user */
var channels = [];
function handler(data) {
if (!data || data.follows.length == 0) {
callback(channels);
return;
}
for (var i = 0; i < data.follows.length; i++)
channels.push(data.follows[i].channel);
}
}


-

I like your code, and would use it myself, some thoughts:

• I assume you declare url next to JSON.load because you want to declare it close to where you use it. I would still recommend using 1 comma separated list of variables on the top.

• lowerCamelCase is good for you, get_follows -> getFollows -> getFollowedChannels ?

• Comparing to 0 should be done with ===, if you do it for the length of an array I would go with a falsey comparison: if (!data || !data.follows.length) {

From a design perspective, you are circumventing the paging system, are you sure you always need every single channel? I hope you at least cache the retrieved information.

-