2016-09-23 2 views
0

Когда я использую AsyncStorage.getItem() для извлечения значения (адреса электронной почты) указанного ключа, он возвращает объект Promise, как указано в документации. Значение отображается в объекте следующим образом:React Native AsyncStorage: доступ к значению из объекта Promise

{ 
    _45: 0 
    _54: null 
    _65: "[email protected]" 
    _81: 1 
} 

Могу ли я надежно получить это значение с помощью вызова obj._65 или есть другой способ сделать это?

ответ

0

Глядя at the docs вы должны быть в состоянии сделать это надежно, чтобы получить данные из объекта хранения асинхронного .:

try { 
    const value = await AsyncStorage.getItem('@MySuperStore:key'); 
    if (value !== null){ 
    // We have data!! 
    console.log(value._65); 
    } 
} catch (error) { 
    // Error retrieving data 
} 

вы должны использовать это в пределах функции, async однако, или вы получите исключение во время выполнения.

+1

Вы, вероятно, следует отметить, что код должен быть обернут в 'async' функции. – rclai

+0

У меня уже есть, что в моем ответе @rclai – httpNick

+0

О, крик, извините, не прочитал последний абзац. – rclai

5

AsyncStorage возвращает обещание. Вы можете использовать .then для значения ПОЛУЧИТЬ

Exemple:

AsyncStorage.getItem('key').then((keyValue) => { 
    console.log(keyValue) //Display key value 
    }, (error) => { 
    console.log(error) //Display error 
}); 
+0

Значение отображаемого значения console.log, но обещание отображения возвращаемого значения –

Смежные вопросы