【发布时间】:2020-12-20 08:59:33
【问题描述】:
我想创建一个方法,从存储在本地存储中的令牌返回身份验证标头,以便可以从许多 ajax 调用它,如下所示:
const fetchUserInfo = (username) => {
const requestString = apiBaseURL + 'access/user_info/'
const form = {username: username}
return axios.post(requestString, form, getAuthHeader())
.then((Response) => {
return {
userInfo: Response.data,
message: null
}
})
.catch((Error) => {
return getErrorMessage();
});
}
在这种情况下,getAuthHeader() 是一种必须从存储在本地存储中的令牌返回正确授权标头的方法,因此它必须使用 asyncStorage 来检索此类令牌。
这是getAuthHeader的代码:
export const getAuthHeader = async () => {
return await AsyncStorage.getItem('token')
.then ((token) => {
return {
headers: {'Authorization' : 'Token ' + token}
}
})
.catch ((error) => null)
}
问题是getAuthHeader() 没有返回标头,而是返回一些其他对象。我相信我搞砸了asyncStorage 的异步特性,但我不知道如何获得我需要的价值。
【问题讨论】:
-
.catch ((error) => null)。像这样的代码会带你进入一个你可能永远不会回来的兔子洞。
标签: javascript react-native asynchronous asyncstorage