gpt4 book ai didi

javascript - JS Promises : Relationship between . 然后语法和异步/等待(Apollo 客户端示例)

转载 作者:行者123 更新时间:2023-11-30 19:33:21 34 4
gpt4 key购买 nike

抱歉问题格式不好,但我只是不知道这里出了什么问题:我将 JWT token 附加到 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
})
}

我错过了什么?

最佳答案

async/await 语法非常好,请继续使用它。如果您必须针对较旧的浏览器,我建议在您的编译管道中引入一个转译器,而不是手动将其重写为 vanilla javascript。如果您仍然对“then”语法感兴趣,那么您来了:promise 需要由函数返回。

request: operation => {
return Auth.currentSession().then(session => {
...
}).catch(err => {
return
})
}

关于javascript - JS Promises : Relationship between . 然后语法和异步/等待(Apollo 客户端示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212107/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com