Nahid Hasan
Nahid Hasan

Reputation: 707

React Native AsyncStorage Not Resolving

i am using asyncstorage in react native , i have followed the guide from FB. but my promise is not resoving .

componentDidMount() {
    async function getitem() {
      try {
        const retrievedItem = await AsyncStorage.getItem("user");
        console.log(retrievedItem);

        const item = JSON.parse(retrievedItem);
        console.log(item);
        return item;
      } catch (error) {
        console.log(error.message);
      }
      return;
    }
    getitem();
  }

my console is like .. this...

 {"_40":0,"_65":0,"_55":null,"_72":null} AddUser.js:33 {_40: 0, _65: 
 0,
 _55: null, _72: null}

Upvotes: 0

Views: 269

Answers (1)

Lanon
Lanon

Reputation: 259

You should return item using Promise Pattern.

try like this.

async function getitem() {
  try {
    const retrievedItem = await AsyncStorage.getItem("user");
    const item = JSON.parse(retrievedItem);
    return Promise.resolve(item);
  } catch (error) {
    return Promise.reject(error)
  }
  // return; <-- don't need this!
}

And, I recommend a better react coding pattern below.

componentDidMount() {
  this.getItem("YOUR_KEY").then(response => {
    // do stuff using response ..
  });
}

async getItem(key) {
  //.. do stuff
} 

Upvotes: 1

Related Questions