arr = [];
(function recurse(url, i) {
getNextUrl(url, function(err, nextUrl) {
if (!err) {
arr.push(nextUrl);
if (i < 100) recurse(nextUrl, i++);
}
});
}("", 0);
Я называю этот шаблон загрузочной рекурсией.
Если вы предпочитаете, чтобы оно было более кратким, а не эффективным, вы можете использовать .bind
магию.
(function recurse(i, err, url) {
if (!err) arr.push(url);
if (i < 100) getNextUrl(url, recurse.bind(null, ++i));
}(0, "trick it", url);