在Uppy初始化中使用异步函数Promise返回值



我正在尝试将来自AWS Cognito的JWT令牌附加到我的上传组件中的Uppy请求。要获得令牌,我相信我需要一个异步函数:

async function getSessionToken() {
const data = (await Auth.currentSession()).getAccessToken().getJwtToken()
console.log(data)
return data;
}

然后我在实际的函数组件中使用这个返回值:

export default function UppyUpload () {

const data = getSessionToken();

const uppy = useUppy(() => {
return new Uppy({
debug: true,
autoProceed: false,
restrictions: {
maxNumberOfFiles: 1,
minNumberOfFiles: 1,
allowedFileTypes: ['video/*'],
requiredMetaFields: ['caption'],
}
})
.use(AwsS3Multipart, {
limit: 4,
companionUrl: 'http://localhost:3020/',
companionHeaders: {
'Authorization': "Bearer " + data,
'uppy-auth-token': "Bearer " + data,
}
})
...

但是,UppyUpload中的data返回了一个promise,正如预期的那样。但我需要以某种方式将其解析为一个值,因为我认为Uppy初始化在函数渲染时需要这个值(Authorization': "Bearer " + data(。

我不知道如何解决这个问题,但我觉得这可能是一个常见的问题。有推荐的方法吗?

await应在函数之外使用

async function getSessionToken() {
const data = await (Auth.currentSession()).getAccessToken().getJwtToken()
console.log(data)

return data;
}

相关内容

  • 没有找到相关文章

最新更新