What types of errors would you expect here?  If there is an error, should we still emit the "show" event?  If we shouldn't be emitting the event in the case of an error, I would suggest deferred.reject() here and implementing the error callback on your "then()" up above.