question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

AsyncStorage.getItem blocks when debugging remotely

See original GitHub issue

Description

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.

result or error are not called below:

AsyncStorage.getItem('key')
      .then(result => console.log('result', result))
      .catch(e => console.log('err', e));

AFTER is not printed (and no error is thrown):

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?

Reproduction

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.

Solution

Additional Information

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://git@github.com/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"
  }

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Reactions:45
  • Comments:92 (7 by maintainers)

github_iconTop GitHub Comments

48reactions
hramoscommented, May 25, 2017

We’re cutting down on the number of outstanding issues, in order to allow us to focus. I’m closing this issue because it has been open for over 60 days with no activity. If you think it should still be opened let us know why. PRs are always welcome.

9reactions
lanlincommented, Mar 23, 2018

wow, there is still no response to this issue…

qq c7qbl o18a0u 3 m

Read more comments on GitHub >

github_iconTop Results From Across the Web

AsyncStorage.getItem return undefined when Debug JS ...
It is weird because It only happens when the Debug JS Remotely is turned off, if I test it with Debug JS Remotely...
Read more >
Developers - AsyncStorage.getItem blocks when debugging remotely -
AsyncStorage.getItem blocks when debugging remotely. ... In some situations when calling AsyncStorage. ... This only happens when the remote debugger is on.
Read more >
How To Use React Native AsyncStorage - JScrambler Blog
AsyncStorage is a simple, asynchronous, unencrypted by default module that allows you to persist data offline in React Native apps.
Read more >
[Solved]-Best practice to get data from Asyncstorage database in ...
const x = await AsyncStorage.getItem('DB'). edit: I see that there is an optional callback - but even in the docs they recommend just...
Read more >
1134265 - Provide a simple key-value store for persisting values in ...
toolkit/devtools/shared/async-storage.js @@ +29,5 @@ > + * write asyncStorage.key; you have to explicitly call setItem() or getItem(). > ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found