如何基本上异步等待正确?我为 AsyncStorage 创建了一个帮助器,它会自动等待异步等待,但是它的用户是否也必须使用 async await 或 promise 方法来获取值?

此代码有效但无法正确使用语法。

这是我的代码:

class AsyncStorageHelper {
  static getItem = async (key: string) => {
    let value: any = "";
    try {
      value = await AsyncStorage.getItem(key);
    } catch (error) {
      console.log(`Error item: ${value}`);
      throw new Error(`Error ${value}`);
    }
    return value;
  };
}

AsyncStorageHelper.getItem("logins")
  .then(result => {
    if (result) {
      if (result === "1") {
        navigate(SCREEN1);
      } else {
        navigate(SCREEN2);
      }
    }
  })
  .catch(err => {
    navigate(LOGINSCREEN);
  });

我如何将 AsyncStorageHelper 代码转换为异步等待,具体取决于我想要导航到不同位置的结果。

最佳答案

await 必须在异步函数中使用。

async function helper() {
  try {
    const result = await AsyncStorageHelper.getItem("logins");

    if (result) {
      if (result === "1") {
        navigate(SCREEN1);
      } else {
        navigate(SCREEN2);
      }
    }
  } catch (error) {
    navigate(LOGINSCREEN);
  }
}

helper()

关于javascript - async await with promises 然后需要阻塞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53878483/

10-12 12:26