First Commit
This commit is contained in:
commit
601e886c14
2123 files changed
+334815
No files matched your search
+40
@@ -0,0 +1,40 @@
|
||||
'use strict';
|
||||
|
||||
const Aspect = require('./operation').Aspect;
|
||||
const defineAspects = require('./operation').defineAspects;
|
||||
const loadCursor = require('../dynamic_loaders').loadCursor;
|
||||
const OperationBase = require('./operation').OperationBase;
|
||||
const nextObject = require('./common_functions').nextObject;
|
||||
|
||||
class HasNextOperation extends OperationBase {
|
||||
constructor(cursor) {
|
||||
super();
|
||||
|
||||
this.cursor = cursor;
|
||||
}
|
||||
|
||||
execute(callback) {
|
||||
const cursor = this.cursor;
|
||||
let Cursor = loadCursor();
|
||||
|
||||
if (cursor.s.currentDoc) {
|
||||
return callback(null, true);
|
||||
}
|
||||
|
||||
if (cursor.isNotified()) {
|
||||
return callback(null, false);
|
||||
}
|
||||
|
||||
nextObject(cursor, (err, doc) => {
|
||||
if (err) return callback(err, null);
|
||||
if (cursor.s.state === Cursor.CLOSED || cursor.isDead()) return callback(null, false);
|
||||
if (!doc) return callback(null, false);
|
||||
cursor.s.currentDoc = doc;
|
||||
callback(null, true);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
defineAspects(HasNextOperation, Aspect.SKIP_SESSION);
|
||||
|
||||
module.exports = HasNextOperation;
|
||||
Reference in new issue
Block a user