例1
const sleep = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)); } const something = async () => { await sleep(100) doSomething() }
例2
// クラスの中 getCurrentPosition(options) { return new Promise((resolve, reject) => { navigator.geolocation.getCurrentPosition(resolve, reject, options) }) } async something() { try { let position = await this.getCurrentPosition() this.doSomething(position) } catch(error) { console.log(error) } }
例3
値を二つ返す系 例は React Nativeから Image コンポーネントのgetSizeメソッド
// クラスの中 _getSize(uri) { return new Promise((resolve, reject) => { Image.getSize(uri, (width, height) => { resolve({width, height}) }, reject) }) } async something(imageUri) { try { let { width, height } = await this._getSize(imageUri) this.doSomething(width, height) } catch(error) { console.log(error) } }