【问题标题】:Issue with AsyncStorage in React NativeReact Native 中的 AsyncStorage 问题
【发布时间】:2019-01-03 00:17:09
【问题描述】:

当 async/await 关键字阻止其他代码执行时,我遇到了问题

这是一个简单的例子:

storeToken = async (accessToken) => {
    try {
        await AsyncStorage.setItem(ACCESS_TOKEN, accessToken);
        console.log('Access Token: ' + accessToken);
    } catch (error) {
        console.log('AsyncStorage error: ' + error.message);
    }
}

storeToken - 将 accessToken 保存到 AsyncStorage 中,然后我尝试打印出访问令牌,仅用于测试目的。

console.log('Access Token: ' + accessToken); 没有执行,我在日志中看不到任何内容。

如果我在 await 之前放置 console.log(...) 行 - 它工作正常。

如果我要删除 async/await - 也可以。

我在 async/await 方面做错了吗?

【问题讨论】:

  • 你不应该await this.storeToken(accessToken); 吗? (虽然不是说这是问题)
  • 我尝试使用 await for this.storeToken(accessToken);但这无济于事
  • 正如我所说的,不是您在提供的代码中的问题,也无法知道onLoginPressed 是如何使用的,所以这可能不是问题
  • 看来AsyncStorage.setItem(ACCESS_TOKEN, accessToken); 返回了一个永远不会解决或拒绝的承诺
  • 如果你改为storeToken = async (accessToken) => { consts ret = AsyncStorage.setItem(ACCESS_TOKEN, accessToken); console.log('Access Token: ' + accessToken); return ret; }; 会发生什么

标签: javascript react-native async-await


【解决方案1】:

这是一个RN Issue。希望RN团队能解决。

【讨论】:

    猜你喜欢
    • 2022-12-22
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 2018-04-16
    • 2019-01-30
    • 1970-01-01
    • 2019-11-23
    相关资源
    最近更新 更多