我是javascript /打字稿初学者,但遇到了问题。我有一个正在登录的函数,我想将cookie放在const变量中以用于将来的请求。
当我在下面添加console.log(token)
时,我总是不确定,也不知道为什么。但是,当我在函数内进行console.log(cookie)
时,cookie会被解析并正确返回。如何使用回调设置const token
?我试图在回调中设置值,但是没有用:(
const authLink = setContext((_, { headers }) => {
const token = loginFunction(cookie => {
return cookie //This doensn't work!
})
return {
headers: {
...headers,
Cookie: token
}
}
})
loginFunction定义如下:
function loginFunction(callback: (cookie: string) => void) {
fetch('https://base_url.com/api/login', {
method: 'post',
body: JSON.stringify(body),
headers: { 'Content-Type': 'application/json' }
})
.then(response => {
callback(
response.headers
.get('Set-Cookie')
.split(';')
.map(c => c.trim())
.filter(cookie => {
return (
cookie.substring(0, 'session'.length + 1) === 'session='
)
})
.map(cookie => {
return decodeURIComponent(cookie)
})[0] || null
)
})
.catch(err => {
// tslint:disable-next-line:no-console
console.error('[LOGIN ERROR]: ', err.toString())
})
}