title: Get data async before a `Page` gets rendered
body: <p>What is the correct way to get data async before a <code>Page</code> gets rendered? </p>
  
  <p><code>Angular2</code> suggests the <code>@CanActivate</code> decorator as far as I understand it. Sadly this is not working with Ionic2, at least not for me and for <a href="https://forum.ionicframework.com/t/what-is-the-equivalent-of-resolve-in-ionic-2/37679/15" rel="noreferrer">others</a></p>
  
  <p>Apparently <code>Ionic2</code> does something with the <code>@CanActivate</code> decorator, <a href="https://github.com/driftyco/ionic-code/blob/c546dcf7dcbf334df349b45db81fbec9718d9fea/2.0.0/js/router.dev.js" rel="noreferrer">see</a> 
  But its not documented and i can't figure out what it does exactly. </p>
  
  <p>Nevertheless <a href="https://webcake.co/page-lifecycle-hooks-in-ionic-2/" rel="noreferrer">this guy</a> points out one should use <code>Ionics View States</code> instead anyways, due to ionics caching. His example looks like this: </p>
  
  <pre><code>  onPageWillEnter() { 
        return this._service.getComments().then(data =&gt; this.comments = data);
    }
  </code></pre>
  
  <p>Which looks like he is expecting Ionic to consider the returned promise, but a <a href="https://github.com/driftyco/ionic-code/blob/c546dcf7dcbf334df349b45db81fbec9718d9fea/2.0.0/components/nav/view-controller.js" rel="noreferrer">quick glance</a> a Ionics sources reveals (at least I think so) that the returned value is ignored. Hence there is no guarantee that the promise gets resolved <em>before</em> the page gets rendered. Here is an <a href="https://plnkr.co/edit/jF9QAcPwGY97cW9dQ7x0" rel="noreferrer">example</a> with onPage* and how it does not perform as needed/expected.</p>
  
  <p>So I'm lost, how does one achieve this simple task? </p>
  
  <p>In the first link, it was suggested to resolve the data before navigating to the page, which burdens the knowledge which data is needed for the page on the callee. This is not an option in my opinion. </p>
  
  <p>*edit: added negative example</p>