in JSLib/src/cache.js [734:765]
var readMore = function (readIndex, readCount) {
if (!canceled) {
if (count >= 0 && arr.length >= count) {
deferred.resolve(arr);
} else {
pendingReadRange = that.readRange(readIndex, readCount).then(function (data) {
for (var i = 0, length = data.length; i < length && (count < 0 || arr.length < count); i++) {
var dataIndex = backwards ? length - i - 1 : i;
var item = data[dataIndex];
if (predicate(item)) {
var element = {
index: readIndex + dataIndex,
item: item
};
backwards ? arr.unshift(element) : arr.push(element);
}
}
// Have we reached the end of the collection?
if ((!backwards && data.length < readCount) || (backwards && readIndex <= 0)) {
deferred.resolve(arr);
} else {
var nextIndex = backwards ? Math.max(readIndex - pageSize, 0) : readIndex + readCount;
readMore(nextIndex, pageSize);
}
}, function (err) {
deferred.reject(err);
});
}
}
};