Splashscreen doesn't hide if StatusBar method called before

The splashscreen doesn’t disappear with this code

platform.ready().then(() => {
  StatusBar.backgroundColorByName('mainColor');
  setTimeout(() => Splashscreen.hide(), 500);
});

But will work with

platform.ready().then(() => {
  setTimeout(() => Splashscreen.hide(), 500);
  StatusBar.backgroundColorByName('mainColor');
});

config.xml

  <preference name="SplashScreen" value="screen"/>
  <preference name="ShowSplashScreen" value="true"/>
  <preference name="ShowSplashScreenSpinner" value="false"/>
  <preference name="SplashShowOnlyFirstTime" value="false"/>
  <preference name="FadeSplashScreen" value="false"/>
  <preference name="AutoHideSplashScreen" value="false"/>
  <preference name="SplashScreenDelay" value="0"/>
  <feature name="SplashScreen">
    <param name="ios-package" value="CDVSplashScreen"/>
    <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen"/>
    <param name="onload" value="true"/>
  </feature>

By the way, the timeout seem to not working correctly, it add a delay of 5 seconds instead of 500ms.