This is possible by passing a promise to the timeout option and resolving that promise. See https://github.com/angular/angular.js/commit/9f4f5937112655a9881d3281da8e72035bc8b180#L5R1283.