await AsyncStorage return 一个 promise 而不是值
await AsyncStorage return a promise instead value
我有一个调用 AsyncStorage.getItem 但总是 returns 承诺的异步函数。
我尝试使用 .then 子句,但结果相似
我试图在函数外使用 AsyncStorage.getItem 但我收到错误 "await is a reserved word"
getDataStorage = async () => {
console.log("getDataStorage");
var data = '';
try {
data = await AsyncStorage.getItem('dataStorage');
console.log("getting data " + data);
return data;
} catch (error) {
console.log("----" + error.message);
}
};
componentDidMount(){
console.log("componentDidMount");
var data = this.getDataStorage();
console.log(data);
}
结果首先显示承诺,然后打印我使用 getItem() 获得的值。
我想获取值,我想用 await 函数等待 getItem 的结果,是否正确?
是的,等待函数等待结果。但是,在您的情况下,它只是等待返回承诺,因此您必须将代码更改为:
componentDidMount = async () => {
console.log("componentDidMount");
data = await this.getDataStorage();
console.log(data);
}
我有一个调用 AsyncStorage.getItem 但总是 returns 承诺的异步函数。
我尝试使用 .then 子句,但结果相似
我试图在函数外使用 AsyncStorage.getItem 但我收到错误 "await is a reserved word"
getDataStorage = async () => {
console.log("getDataStorage");
var data = '';
try {
data = await AsyncStorage.getItem('dataStorage');
console.log("getting data " + data);
return data;
} catch (error) {
console.log("----" + error.message);
}
};
componentDidMount(){
console.log("componentDidMount");
var data = this.getDataStorage();
console.log(data);
}
结果首先显示承诺,然后打印我使用 getItem() 获得的值。
我想获取值,我想用 await 函数等待 getItem 的结果,是否正确?
是的,等待函数等待结果。但是,在您的情况下,它只是等待返回承诺,因此您必须将代码更改为:
componentDidMount = async () => {
console.log("componentDidMount");
data = await this.getDataStorage();
console.log(data);
}