Open sontek opened 11 years ago
This fixes it for me but probably not the best solution:
handler.defer = function(deferred) {
handler._isDefer = true;
// Allow a deferred to be passed in
deferred = deferred || options.deferred();
// Add to the list of deferreds
async._bucket.push(deferred);
var old_rej = deferred.reject
var old_res = deferred.resolve
deferred.reject = function() {
handler.isDefer = false;
async._bucket = [];
old_rej();
}
deferred.resolve = function() {
handler.isDefer = false;
async._bucket = [];
old_res();
}
return deferred;
};
If you call this.defer() and later call this.resolve() it keeps handler.isDefer set as well as leaves the deferred in async._bucket. After you call resolve or reject this needs to reset the state so that you can continue doing routing.