title: Why $timeout doesn't work when used inside a promise resolve?
body: <p>I trying to show an message to the user that will disappear after 6 seconds using angular $timeout. Unfortunately I've been unable to make it work in conjunction with angular-translate (that I use for translations).</p>
  
  <p>So this code works (without $translate service):</p>
  
  <pre><code>this.showMessage = function(type, text) {
      message.isVisible = true;
      message.type = type;
      message.text = text;
      $timeout(this.hideMessage, 6 * 1000);
  }
  </code></pre>
  
  <p>But when I make the call inside $translate service response it doesn't (I already checked that the promise is correctly resolved):</p>
  
  <pre><code>this.showMessage = (type, translationId) {
      $translate(translationId).then(function (text) {
          //This works just fine.
          message.isVisible = true;
          message.type = type;
          message.text = text;
          //But hideMessage never gets called.
          $timeout(this.hideMessage, 6 * 1000);
      });
  }
  </code></pre>
  
  <p>Can someone help? Thank you.</p>