等待 AsyncStorage.getItem()

Waiting for AsyncStorage.getItem()

我在我的 React Native 应用程序中使用 AsyncStorage 来存储有关用户的信息。 getItem() 函数是异步的,当我想从存储系统加载数据时,需要我实现一个回调。

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

因为从存储中取值的时间并不长,所以想等操作完成再继续执行。

是否可以以非异步方式加载数据?如果没有,是否有一种简单的方法让我等到 getItem() 调用完成后继续执行?

您可以尝试在 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.

试试这个选项,你不会得到

Syntax Error: Await is a reserved word

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

你可以试试这个:

async getPhoneNumber() {
  const phoneNumber = await AsyncStorage.getItem("phoneNumber")
  console.log(phoneNumber)
}