var Promise = require('bluebird') module.exports.periodicNotify = function(promise, interval) { var resolver = Promise.defer() function notify() { resolver.progress() } var timer = setInterval(notify, interval) function resolve(value) { resolver.resolve(value) } function reject(err) { resolver.reject(err) } promise.then(resolve, reject) return resolver.promise.finally(function() { clearInterval(timer) }) }