React Native + Expo:AppLoadingで数秒待つ

当初、こんな書き方をしていました:

  render() {

    if (!this.state.isReady) {
      return (
        <AppLoading
          startAsync={this._dummyPromise}
          onFinish={ () => this.setState( { isReady: true }) }
          onError={console.warn}
        />
      )
    }
<中略>
  async _dummyPromise() {
    let delay = new Promise( (resolve, reject) => {
      let wait = setTimeout( () => {
        clearTimeout(wait);
        resolve("Delay executed");
      }, 3000);
    });
    return delay;
  }

参考ソース:https://italonascimento.github.io/applying-a-timeout-to-your-promises/

こちらのほうが簡潔に書けます:

  render() {

    if (!this.state.isReady) {
      return (
        <AppLoading
          startAsync={this._dummyPromise}
          onFinish={ () => this.setState( { isReady: true }) }
          onError={console.warn}
        />
      )
    }

<中略>
  async _dummyPromise() {
    await new Promise(resolve => setTimeout(resolve, 3000));
  }

参考ソース:https://qiita.com/suin/items/99aa8641d06b5f819656