#javascript #reactjs #react-native
#javascript #reactjs #реагировать — родной
Вопрос:
Я использовал асинхронное хранилище в своем приложении React native. итак, я установил данные, установив AsyncStorage.setItem(«@Token», JsonValue). и я создал другую функцию для получения данных, поэтому я не смог вывести свой ответ за рамки обещания
Код:
storeData = async (value) => {
try {
const jsonValue = JSON.stringify(value);
await AsyncStorage.setItem("@Token", jsonValue);
} catch (e) {
// saving error
}
};
getData = () => {
const getTodos = AsyncStorage.getItem("@Token");
getTodos.the((res)=>{
return res;
})
if(res!==null){
return true;
}
else{
return false
}
}
Ответ №1:
Значение, возвращаемое из обещания, доступно только из его .then()
обратного вызова. Это означает, что res
это доступно только внутри getTodos.then((res) => { ... })
.
storeData = async (value) => {
try {
const jsonValue = JSON.stringify(value);
await AsyncStorage.setItem("@Token", jsonValue);
} catch (e) {
// saving error
}
};
getData = () => {
const getTodos = AsyncStorage.getItem("@Token");
getTodos.then((res) => {
if (res !== null) {
return true;
} else {
return false;
}
});
};
Ответ №2:
Похоже, вы хотите getData
вернуть элемент из хранилища.
Попробуйте что-то вроде этого
getData = async () => {
try {
const value = await AsyncStorage.getItem("@Token");
if (value !== null) {
// We have data!!
console.log(value);
}
} catch (error) {
// Error retrieving data
}
};
Ответ №3:
Попробуйте это:
getData = () => {
try {
const getTodos = AsyncStorage.getItem("@Token");
if (getTodos !== null) {
console.log(getTodos);
return true;
}
} catch (error) {
// Error retrieving data
return false;
}
}
}