我正在尝试使用AsyncStorage.getItem('key_name')检查AsyncStorage中是否有可用的密钥。如果密钥不可用,它不会返回null,它仍然返回以下promise对象:
Promise
_45:0
_54:null
_65:null
_81:1我获取数据的函数如下:
checkItemExists(){
let context = this;
try {
let value = AsyncStorage.getItem('item_key');
if (value != null){
// do something
}
else {
// do something else
}
} catch (error) {
// Error retrieving data
}
}如何检查AsyncStorage中是否存在密钥?
发布于 2017-05-22 20:02:06
您需要在结果中添加async await或添加.then
async checkUserSignedIn(){
let context = this;
try {
let value = await AsyncStorage.getItem('user');
if (value != null){
// do something
}
else {
// do something else
}
} catch (error) {
// Error retrieving data
}
}发布于 2017-05-22 20:00:58
正如它的名字所说,它是异步的。所以你必须:
AsyncStorage.getItem('user')
.then((item) => {
if (item) {
// do the damage
}
});如果需要,您可以使用本地状态或某个应用程序状态管理库。
发布于 2017-05-22 20:00:26
AsyncStorage是异步的.所以,你需要这样叫它:
checkUserSignedIn(callback){
AsyncStorage.getItem('user', (err, result) => {
if (!err && result != null){
// do something
}
else {
// do something else
}
callback(result);
});
}https://stackoverflow.com/questions/44112271
复制相似问题