【发布时间】:2019-10-06 07:15:54
【问题描述】:
抱歉问题格式不好,但我不知道这里出了什么问题:我正在将 JWT 令牌附加到 Apollo 客户端(使用 apollo-boost),如下所示:
const client = new ApolloClient({
uri: 'http://127.0.0.1:3000/graphql',
// adding the auth header to all requests
request: async operation => {
try {
const session = await Auth.currentSession()
const token = session.accessToken.jwtToken
operation.setContext({
headers: {
authorization: `Bearer ${token}`
}
})
} catch(e) {
return
}
}
})
这行得通。但是,当我尝试将其转换为我更喜欢的 .then 语法时,它不再起作用了。这就是我重写它的方式:
request: operation => {
Auth.currentSession().then(session => {
const token = session.accessToken.jwtToken
operation.setContext({
headers: {
authorization: `Bearer ${token}`
}
})
}).catch(err => {
return
})
}
我错过了什么?
【问题讨论】:
-
如果你希望它被调用者链接/等待,你需要 return 承诺。
-
it didn't work anymore,什么不再起作用了?以及如何不再工作?`
标签: javascript async-await es6-promise apollo