title: Unable to work with React Native Async Storage
body: <p>I am having difficulty working with react native async storage.
  Most of the time my code jumps off the current execution and goes to the next line without getting the results from the current line. I am getting errors most of the time.</p>
  
  <p>I tried this example-</p>
  
  <pre><code>'use strict';
  
  var React = require('react-native');
  var {
    AsyncStorage,
    PickerIOS,
    Text,
    View
  } = React;
  var PickerItemIOS = PickerIOS.Item;
  
  var STORAGE_KEY = '@AsyncStorageExample:key';
  var COLORS = ['red', 'orange', 'yellow', 'green', 'blue'];
  
  var BasicStorageExample = React.createClass({
    componentDidMount() {
      this._loadInitialState().done();
    },
  
    async _loadInitialState() {
      try {
        var value = await AsyncStorage.getItem(STORAGE_KEY);
        if (value !== null){
          this.setState({selectedValue: value});
          this._appendMessage('Recovered selection from disk: ' + value);
        } else {
          this._appendMessage('Initialized with no selection on disk.');
        }
      } catch (error) {
        this._appendMessage('AsyncStorage error: ' + error.message);
      }
    },
  
    getInitialState() {
      return {
        selectedValue: COLORS[0],
        messages: [],
      };
    },
  
    render() {
      var color = this.state.selectedValue;
      return (
        &lt;View&gt;
          &lt;PickerIOS
            selectedValue={color}
            onValueChange={this._onValueChange}&gt;
            {COLORS.map((value) =&gt; (
              &lt;PickerItemIOS
                key={value}
                value={value}
                label={value}
              /&gt;
            ))}
          &lt;/PickerIOS&gt;
          &lt;Text&gt;
            {'Selected: '}
            &lt;Text style={{color}}&gt;
              {this.state.selectedValue}
            &lt;/Text&gt;
          &lt;/Text&gt;
          &lt;Text&gt;{' '}&lt;/Text&gt;
          &lt;Text onPress={this._removeStorage}&gt;
            Press here to remove from storage.
          &lt;/Text&gt;
          &lt;Text&gt;{' '}&lt;/Text&gt;
          &lt;Text&gt;Messages:&lt;/Text&gt;
          {this.state.messages.map((m) =&gt; &lt;Text key={m}&gt;{m}&lt;/Text&gt;)}
        &lt;/View&gt;
      );
    },
  
    async _onValueChange(selectedValue) {
      this.setState({selectedValue});
      try {
        await AsyncStorage.setItem(STORAGE_KEY, selectedValue);
        this._appendMessage('Saved selection to disk: ' + selectedValue);
      } catch (error) {
        this._appendMessage('AsyncStorage error: ' + error.message);
      }
    },
  
    async _removeStorage() {
      try {
        await AsyncStorage.removeItem(STORAGE_KEY);
        this._appendMessage('Selection removed from disk.');
      } catch (error) {
        this._appendMessage('AsyncStorage error: ' + error.message);
      }
    },
  
    _appendMessage(message) {
      this.setState({messages: this.state.messages.concat(message)});
    },
  });
  
  exports.title = 'AsyncStorage';
  exports.description = 'Asynchronous local disk storage.';
  exports.examples = [
    {
      title: 'Basics - getItem, setItem, removeItem',
      render(): ReactElement { return &lt;BasicStorageExample /&gt;; }
    },
  ];
  </code></pre>
  
  <p>This works. But, my functions doesn't work as expected. I am getting <code>undefined</code>.</p>