问题:
我正在尝试使用超级代理重试我的原始请求。这是一些伪:
function postRequest({
parameters
}) {
return superagent.post(url)
.set("Authorization", `Bearer ${process.env.initialToken}`)
.send({data})
.then(res => {
if (res.unauthorized) {
// I want to make a API call, get a new token, then redo postRequest() with new bearer
}
})
.catch(err => {
throw err
});
}
问题:
我注意到有些开发人员在捕获中处理此问题,其他开发人员在响应中处理。我还注意到有人使用.on
插件进行检查。
查看超级代理文档,我应该尝试自定义retry()
吗?我可以以某种方式使用request.auth('my_token', { type: 'bearer' })
吗?这可能很简单,但是在这种用例下很难遵循他们的文档。请让我知道您的想法!
答案 0 :(得分:0)
解决方案-能够通过使用相同的初始参数再次返回对函数的调用来解决。您可以在错误处理中遵循相同的逻辑/模式。
注意-retry()API存在一些问题,无法按401的预期工作,并且插件在此用例中过大。