Jeg er stadig ikke sikker på, hvad der forårsager pausen, men det ser ud til, at det er synderen.
Under pausen, Cursor.nextObject
bliver kaldt flere gange, før den første vender tilbage. Nogle af disse opkald returnerer null
. Løsningen er at sikre dig Cursor.nextObject
kaldes aldrig samtidigt.
if (this.cursor && !this.cursor_exec && this.length() < this.concurrency) {
this.cursor_exec = true;
this.cursor.nextObject(function(err, item) {
console.log(this.name + ': ' + (item ? item._id : null) + ' ' + (err ? err : null));
this.cursor_exec = false;
if (item) {
this.push(item);
} else {
delete this.cursor;
}
}.bind(this));
}