title: Ionic 4: "Loading Controller" dismiss() is called before present() which will keep spinner without dismissing
body: <p>I used "Ionic Loading Controller" to show a spinner until the data is retrieved then it calls "dismiss()" to dismissed it.
  it works fine, but sometimes when the app already have the data, the "dismiss()" is called before the "create()" and "present()" is done which will keep the spinner without dismissing...</p>
  
  <p>I tried to call the data inside "loadingController.present().then()", but that caused the data to be slower...</p>
  
  <p>is this a bug?
  how to solve the this issue?</p>
  
  <p>Example of my code:</p>
  
  <pre><code>customer: any;
  
  constructor(public loadingController: LoadingController, private customerService: CustomerService)
  
  ngOnInit() {
    this.presentLoading().then(a =&gt; consloe.log('presented'));
    this.customerService.getCustomer('1')
    .subscribe(customer =&gt; {
      this.customer = customer;
      this.loadingController.dismiss().then(a =&gt; console.log('dismissed'));
    }
  }
  
  async presentLoading() {
    const loading = await this.loadingController.create({
      message: 'wait. . .',
      duration: 5000
    });
    return await loading.present();
  }
  </code></pre>