【发布时间】:2019-05-21 13:17:51
【问题描述】:
如何正确地基本上异步等待?我为 AsyncStorage 创建了一个帮助器,它会自动等待异步,但它的用户是否也必须使用 async await 或承诺方法来获得价值?
此代码有效,但无法正确使用语法。
这是我的代码:
class AsyncStorageHelper {
static getItem = async (key: string) => {
let value: any = "";
try {
value = await AsyncStorage.getItem(key);
} catch (error) {
console.log(`Error item: ${value}`);
throw new Error(`Error ${value}`);
}
return value;
};
}
AsyncStorageHelper.getItem("logins")
.then(result => {
if (result) {
if (result === "1") {
navigate(SCREEN1);
} else {
navigate(SCREEN2);
}
}
})
.catch(err => {
navigate(LOGINSCREEN);
});
如何将AsyncStorageHelper 代码转换为异步等待,具体取决于我想要导航到不同位置的结果。
【问题讨论】:
-
异步函数返回承诺,所以是的,函数的调用者必须将返回值视为承诺。 (这是你的问题吗?)
标签: javascript react-native ecmascript-6 async-await es6-promise