In some situations when calling AsyncStorage.getItem, either with a callback, calling then
or using async await
, the proceeding callback is not called and the promise does not resolve. This only happens when the remote debugger is on.
AsyncStorage.getItem('key')
.then(result => console.log('result', result))
.catch(e => console.log('err', e));
console.log('BEFORE');
const result = await AsyncStorage.getItem('key');
console.log('AFTER');
The same code above completes the first time (and several consecutive times) it is run in the same debug session but blocks at a later stage. The point in time where it starts blocking is consistent in my app, so there is a piece of context that I haven't found yet which is causing it. I will continue searching for this context. Are maybe others running into similar behavior?
No matter the availability of data, getItem should always resolve (or reject), right?
I will keep trying to isolate the reproduction but so far I have not been able to cleanly reproduce, but in my full app, it is consistently occurring.
This issue is occurring on both iOS devices and simulators. I haven't seen it on Android yet.
OS X 10.11.6
Xcode 8.2.1
React Native Debugger 0.5.6
React Native 0.42.0
"dependencies": {
"react": "15.4.2",
"react-native": "0.42.0",
"analytics-react-native": "^1.0.1",
"axios": "^0.11.1",
"bugsnag-react-native": "^2.0.2",
"firebase": "^3.6.10",
"moment": "2.17.1",
"react-native-auth0": "^1.0.0-beta.1",
"react-native-code-push": "^1.17.2-beta",
"react-native-drawer": "^2.2.3",
"react-native-gifted-chat": "https://github.com/immidi/react-native-gifted-chat",
"react-native-loading-spinner-overlay": "^0.4.1s",
"react-native-lock": "git+ssh://[email protected]/auth0/react-native-lock.git",
"react-native-navbar-wrapper": "^1.0.0",
"react-native-onesignal": "^3.0.2",
"react-native-smart-badge": "1.1.1",
"react-navigation": "1.0.0-beta.3",
"react-redux": "^4.4.5",
"redux": "^3.5.2",
"redux-devtools-extension": "^2.13.0"
},
"devDependencies": {
"babel-jest": "19.0.0",
"babel-preset-react-native": "1.9.1",
"jest": "19.0.2",
"react-test-renderer": "15.4.2",
"remote-redux-devtools": "^0.5.7",
"chai": "*",
"chai-as-promised": "*",
"colors": "*",
"mocha": "*",
"q": "*",
"underscore": "*",
"wd": "*",
"eslint": "^3.1.1",
"eslint-plugin-react": "^5.2.2",
"eslint-plugin-react-native": "^1.1.0",
"babel-eslint": "^6.1.2"
}