当初、こんな書き方をしていました:
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)); }