web-dev-qa-db-fra.com

En attente de AsyncStorage.getItem ()

J'utilise AsyncStorage dans mon React Application native pour stocker des informations sur l'utilisateur. La fonction getItem() est asynchrone et m'oblige à implémenter un rappel lorsque je souhaitez charger des données à partir du système de stockage.

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

Étant donné que la récupération d'une valeur à partir du stockage ne prend pas longtemps, je voudrais attendre la fin de l'opération avant de poursuivre l'exécution.

Est-il possible de charger des données d'une manière qui n'est pas asynchrone? Sinon, existe-t-il un moyen simple pour moi d'attendre la fin de l'appel de getItem() pour poursuivre l'exécution?

15
Adam Jakiela

Vous pouvez essayer soit d'ajouter un puis votre getItem.

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

Ou utilisez attendre pour attendre l'opération async pour terminer

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

essayez cette option et vous n'aurez pas le

Erreur de syntaxe: Await est un mot réservé

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