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