web-dev-qa-db-ja.com

AsyncStorage.getItem()を待機しています

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

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

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

非同期ではない方法でデータをロードすることは可能ですか?そうでない場合、getItem()呼び出しが完了して実行を継続するまで待つ簡単な方法はありますか?

15
Adam Jakiela

getItemの後にthenを追加してみてください。

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

または、awaitを使用してasync操作が完了するのを待ちます

var value = await AsyncStorage.getItem(STORAGE_KEY);
//use value to do something else.
25
Fan Jin

このオプションを試してみると、

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

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