我读到await
停止执行,而承诺没有得到解决。我正在尝试在我的React-native应用程序中执行以下操作:
static async getFromStorage(key) {
const value = await AsyncStorage.getItem(key);
console.log(value);
return value;
}
console.log(Class.getFromStorage("test"));
但我得到以下内容而不是真正的价值(Chrome不允许我复制时间戳......):
那么为什么我的代码不等待解决承诺?
更新
@thedude建议:
async function waitForStorage() {
console.log(await getFromStorage());
}
waitForStorage();
这个解决方案的问题我在课堂上需要它,我想要使用它。但当我someVar = await getFromStorage()
时,我得到500错误。我可以等,因为它是100毫秒。
例如:
someVar = await getFromStorage("token");
checkToken(someVar);
答案 0 :(得分:1)
运行console.log
的代码也应标记为async
,并且还应await
getFromStorage
的返回值;
e.g。这会奏效:
async function waitForStorage() {
console.log(await getFromStorage());
}
waitForStorage(); // now the console messages should be in the correct order
或者你可以等待承诺的解决方案:
getFromStorage("token").then(someVar => checkToken(someVar))