gpt4 book ai didi

react-native - AsyncStorage 不返回回调

转载 作者:行者123 更新时间:2023-12-04 05:18:11 27 4
gpt4 key购买 nike

我正在使用 redux-persist在一个 react native 项目中,它在大量设备上运行得很好除了 Android 7 .我正在尝试调试为什么我的本地存储也不持久的问题,并发现了这一点:

以下代码在 React Native 组件生命周期内执行

  componentDidMount() {
attachObservables(store)
setInterval(async () => {
console.log('Inside setInterval')
const data = await AsyncStorage.getAllKeys()
console.log('inside the getAllKeys')
data.forEach(async k => {
const value = await AsyncStorage.getItem(k)
console.group(k)
console.log(value)
console.groupEnd()
})
}, 3000)
}

'Inside setInterval' 之后的代码永远不会被调用。如果在 setInterval 之外,它只会运行一次。如果我在 setInterval 之外调用一次代码,它似乎运行得很好。我也尝试过回调格式与异步/等待版本,但这似乎并不重要。

我在使用 firebase js 库时遇到了同样的问题(回调在第一个之后永远不会返回)。我现在正在寻找解决问题的替代方法。

有任何想法吗?

最佳答案

在某些 Android 版本中,从 React Native 0.51 开始,运行时可能会被其他原生模块阻塞,从而阻碍上述方法的解析。

可以通过https://github.com/facebook/react-native/issues/14101#issuecomment-345563563修复,确保此方法使用线程池中的空闲线程。

PR 已经提交,我希望在 future 的版本中发布。如果您希望它立即使用此修复程序,可在此处获得 https://github.com/netbeast/react-native

编辑:
我在 react-native@0.53 的真实设备上不再遇到这种情况,无论如何其他人也报告了,所以问题仍然存在。

关于react-native - AsyncStorage 不返回回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44114061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com