in public/dexie.js [4692:4743]
function iterate(req, filter, fn, resolve, reject, valueMapper) {
// Apply valueMapper (hook('reading') or mappped class)
var mappedFn = valueMapper
? function (x, c, a) {
return fn(valueMapper(x), c, a);
}
: fn;
// Wrap fn with PSD and microtick stuff from Promise.
var wrappedFn = wrap(mappedFn, reject);
if (!req.onerror) req.onerror = eventRejectHandler(reject);
if (filter) {
req.onsuccess = trycatcher(function filter_record() {
var cursor = req.result;
if (cursor) {
var c = function () {
cursor.continue();
};
if (
filter(
cursor,
function (advancer) {
c = advancer;
},
resolve,
reject
)
)
wrappedFn(cursor.value, cursor, function (advancer) {
c = advancer;
});
c();
} else {
resolve();
}
}, reject);
} else {
req.onsuccess = trycatcher(function filter_record() {
var cursor = req.result;
if (cursor) {
var c = function () {
cursor.continue();
};
wrappedFn(cursor.value, cursor, function (advancer) {
c = advancer;
});
c();
} else {
resolve();
}
}, reject);
}
}