关于request中return await axios的问题
来源:7-11 Github接口代理完善

MeSKiL
2019-10-10
async function requestGithub(method,url,data,headers) {
return await axios({
method,
url:`${github_base_url}${url}`,
data,
headers
})
}
// 区分服务端与客户端渲染
async function request({method = 'GET', url, data = {}}, req, res) {
if(!url){
throw Error('url must provide')
}
if(isServer){
const session = req.session;
const githubAuth = session.githubAuth || {};
const headers = {}
if(githubAuth.access_token){
headers['Authorization'] = `${githubAuth.token_type}${githubAuth.access_token}`
}
return await requestGithub(method,url,data,headers)
}else{
return await axios({
method,
url:`/github${url}`
})
}
}
request返回的是一个promise,直接返回axios就可以了吧应该。return await axios({})的话,我的理解是 await axios得到的是一个具体的结果,因为在async函数里,所以return的时候又把结果变成了promise,等于是先把promise变成data,再把data变成promise,既然结果都是传递promise,那async 和 await是不是有点多此一举了,还是说有啥别的好处嘛
function requestGithub(method,url,data,headers) {
return axios({
method,
url:`${github_base_url}${url}`,
data,
headers
})
}
// 区分服务端与客户端渲染
function request({method = 'GET', url, data = {}}, req, res) {
if(!url){
throw Error('url must provide')
}
if(isServer){
const session = req.session;
const githubAuth = session.githubAuth || {};
const headers = {}
if(githubAuth.access_token){
headers['Authorization'] = `${githubAuth.token_type}${githubAuth.access_token}`
}
return requestGithub(method,url,data,headers)
}else{
return axios({
method,
url:`/github${url}`
})
}
}
写回答
1回答
-
Jokcy
2019-10-13
经你这么一说好像是这么回事,你可以试一下,没问题就行
00
全栈进阶课程 React16.8+Next.js+Koa2一步到位开发Github
学习React/Next.js服务端渲染SSR同构设计方案,理解OAuth登录体系的实现原理
651 学习 · 311 问题
相似问题