Closed
Description
I have isolated a bug in pre('save', ...)
middleware resolution, based on this issue: keystonejs/keystone#759
This works:
schema.pre('save', true, function(next, done) {
console.log('locking 1');
process.nextTick(function() {
console.log('releasing lock 1');
done();
});
next();
});
schema.pre('save', true, function(next, done) {
console.log('locking 2');
process.nextTick(function() {
console.log('releasing lock 2');
done();
});
next();
});
This also works:
schema.pre('save', true, function(next, done) {
console.log('locking 1');
process.nextTick(function() {
console.log('releasing lock 1');
done();
});
next();
});
schema.pre('save', function(done) {
console.log('locking 2');
console.log('releasing lock 2');
done();
});
This does not work:
schema.pre('save', true, function(next, done) {
console.log('locking 1');
process.nextTick(function() {
console.log('releasing lock 1');
done();
});
next();
});
schema.pre('save', function(done) {
console.log('locking 2');
process.nextTick(function() {
console.log('releasing lock 2');
done();
});
});
The order is important; if the serial middleware is included first in the bottom example, it works as expected.