关于token的获取与Fetch传入headers的步骤无法同步的问题
来源:6-1 本章目标
慕尼黑0536602
2022-03-16
hi 老师,
我被一个问题给堵了。。
就是我需要一个需要上传Authorization :token 的 Get请求。
因为获得用户的token ,需要用await 获取,所以,获取需要一点儿时间。导致同时使用useEffect和fetch上传的时候,Authorization只能获得 “Bearer”,(当不使用useEffect的时候,可以更新,但是程序会拼了老命地获取request …) … 麻烦您帮我看下一下代码,如何才能解决这个问题呢?
const getToken = async()=>{
try {
return await AsyncStorage.getItem(KEY);
} catch (error) {
console.log("Error getting the auth token", error);
}
};
const getMe = async() =>{
await storage.getToken().then(token=>setUserToken(token));
fetch('http://192.168.1.124:5000/api/v1/userInfo/getMe',{
method : "get",
headers :new Headers({
'Content-Type':'application/json',
"Authorization": `Bearer ${userToken}`
}),
})
.then(res=>res.json())
.then(result=>{
setMe(result);
console.log("收到的me信息为:",result);
})
.catch(error=>console.log("出错:",error))
}
useEffect(()=>{
getMe();
},[])
我也尝试使用Promise.all .但是会显示res.json() is undefined…
const getMe = async() =>{
const p1= await storage.getToken().then(token=>setUserToken(token));
const p2= fetch('http://192.168.1.124:5000/api/v1/userInfo/getMe',{
method : "get",
headers :new Headers({
'Content-Type':'application/json',
"Authorization": `Bearer ${userToken}`
}),
})
Promise.all([p1,p2]).then(res=>res.json())
.then(result=>{
setMe(result);
console.log("收到的me信息为:",result);
})
.catch(error=>console.log("出错:",error))
}
useEffect(()=>{
getMe();
},[])
写回答
1回答
-
如果实在不行可以改成用class Component
d的写法试试看呢012022-03-18
相似问题