如何使用 async/await 调用 AWS 开发工具包的 Athena API?



AWS 开发工具包的 Athena API 有一个具有以下签名的函数:

startQueryExecution(params: Athena.Types.StartQueryExecutionInput, callback?: (err: AWSError, data: Athena.Types.StartQueryExecutionOutput) => void): Request<Athena.Types.StartQueryExecutionOutput, AWSError>;

这使用回调(第二个参数(,所以我必须这样称呼它:

athenaAPI.startQueryExecution(params, (err, data) => {...});

我宁愿这样称呼它:

const result = await startQueryExecution(params);

我如何将这个函数(也许使用 node 的 promisify,但我不在乎如何(转换为使用承诺而不是回调?

我知道我输入的主要是非类型化的javascript,但我更喜欢使用带有打字稿的类型答案。

谢谢!

在适用于 JavaScript 的 AWS 开发工具包中,您可以将.promise()添加到任何 API 调用以获得承诺:

const response = await athenaAPI.startQueryExecution(params).promise()

您可以在此处阅读有关它的更多信息:https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/using-promises.html

最新更新