2016-05-09 15 views
6

私のReactネイティブアプリケーションでAsyncStorageを使用して、ユーザーに関する情報を保存しています。 getItem()関数は非同期で、ストレージシステムからデータをロードするときにコールバックを実装する必要があります。AsyncStorage.getItem()を待っています

AsyncStorage.getItem("phoneNumber").then((value) => { 
    this.setState({"phoneNumber": value}); 
}).done(); 

ストレージから値を取得するのに時間がかからないため、操作が完了するまで待ってから実行を続行します。

非同期ではない方法でデータを読み込むことはできますか?そうでない場合は、getItem()呼び出しが完了して実行を続行するまで簡単に待つことができますか?

答えて

10

getItemのあとに「」を追加してみてください。

AsyncStorage.getItem("phoneNumber").then((value) => { 
    this.setState({"phoneNumber": value}); 
}) 
.then(res => { 
    //do something else 
}); 

または使用は、このオプション を試してみて、あなたが取得することはありません

var value = await AsyncStorage.getItem(STORAGE_KEY); 
//use value to do something else. 
+1

構文エラー:Awaitは予約語です。 – mixdev

+2

'await'を使用して関数の関数定義に 'async'キーワードを追加してください –

+0

これはページの読み込み時にどこで呼び出されますか? – Dhrupal

2

を終了する非同期操作を待つために待っています:

async getData(){ 
    return await AsyncStorage.getItem("@App:KEY"); 


} 

構文エラーを待つには、予約語です」
関連する問題