JSFiddle - React, Tailwind, and code Playground
HTML
<div id="test"></div>
JavaScript
function getList(resource, list, last) {
return resource.query({last: last})/*.$promise*/.then(function(data){
list = list.concat(data.list);
if (data.next) {
return getList(resource, list, data.last);
}
return list;
});
}
var array = [];
for (var i = 0; i < 100; i++) {
array.push(i);
}
var resource = {
query: function(data) {
var last = data.last;
return new Promise(function(resolve) {
resolve({
next: last !== 100,
last: last += 20,
limit: 20,
list: array.slice(last - 20, last)
})
});
}
}
getList(resource, [], 0)/*.$promise*/.then(function(data) {
$('#test').text(data);
});