首页 > 解决方案 > 如何通过 AWS SDK Javascript 使用 Async 和 Await

问题描述

我正在使用 KMS 库使用 AWS 开发工具包。我想使用 async 和 await 而不是回调。

import AWS, { KMS } from "aws-sdk";

this.kms = new AWS.KMS();

const key = await this.kms.generateDataKey();

但是,当包装在异步函数中时,这不起作用。

我如何在这里使用异步和等待?

标签: node.jsaws-sdkaws-kms

解决方案


如果您使用版本 > 2.x 的 aws-sdk,您可以将 a 转换为aws.Request具有链.promise()功能的 Promise。对于您的情况:

  try {
    let key = await kms.generateDataKey().promise();
  } catch (e) {
    console.log(e);
  }

keyis a - 回调的KMS.Types.GenerateDataKeyResponse第二个参数(回调风格)。

eis a AWSError- 回调函数的第一个参数

注意:await表达式只允许在异步函数中使用


推荐阅读