Question: App in `created` event execute AJAX request to server to get a status. In `mounted` event App fire onLoad callback with the status to let Developer decide what to do next.

Depends on the status App should redirect user or display message. Until AJAX in progress User should see loading icon.

Here is async problem. In `created` event a request already sent and app fired `mounted`, but the request still running in background. And Developer receive default status. 

How to wait for status from backend and only after fire `mounted` event?

Answer: 
If you really feel like you need to delay the mounted cycle:
When looking at the lifecycle [here](https://alligator.io/vuejs/component-lifecycle/), it states if there is no 'el' option on the component, then you can manually call mount using vm.$mount(el).

However, could you not use the beforeUpdate lifecycle hook? So rather than delaying the mount function (delaying the component from mounting seems like a bad idea), you return the request data which triggers the beforeUpdate?
Another simple method is use `v-if`,like this:

```
<div class="status" v-if="requestDone">status</div>
<div class="loading" v-else>loading</div>

```

In js:

```
data() {
    return {
        requestDone: false
    }
}

created() {
    promise.then(() => {
        ...
        this.requestDone = true
    })
}

```

status wrap will render until `requestDone` becomes `true`.