我查看了一些帖子,例如post
我想使用console.log来查看我是否成功将项目设置为AsyncStorage。
这是我的代码:
export function saveDeckTitleAPI(key,title) {
return AsyncStorage.setItem(uuid(), JSON.stringify(new DeckCreator(title)))
.then(data => {
debugger;
console.log('INSIDE SET ITEM');
AsyncStorage.getItem(data.key).then(item => {
console.log(item);
})
})
.catch(err => {
console.err(err);
});
}
运行此代码时,.then
和.catch
未得到满足。我尝试单独记录承诺,我得到的结果与上面的帖子类似。
我必须使用async / await吗?这是问题吗?以下是setItem的文档。
答案 0 :(得分:0)
您可以将回调作为第三个参数传递。如果有错误,它将是回调的第一个参数。如果没有错误,控制台记录一切都很好,否则记录错误。
答案 1 :(得分:0)
是的,您需要async
和await
您可以从下面的代码中获得灵感,我使用setItem
进行Facebook登录的方式
const doFacebookLogin = async dispatch => {
const { type, token } = await
Facebook.logInWithReadPermissionsAsync('xxxx', {
permissions: ['public_profile']
});
if (type === 'cancel') {
return dispatch({ type: FACEBOOK_LOGIN_FAIL });
}
await AsyncStorage.setItem('fb_token', token);
dispatch({ type: FACEBOOK_LOGIN_SUCCESS, payload: token });
};