一尘不染

如何在AWS开发工具包Javascript中使用Async and Await

node.js

我正在使用KMS库使用AWS开发工具包。我想使用异步和等待而不是回调。

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

this.kms = new AWS.KMS();

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

但是,当包装在异步函数中时,这是行不通的。

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


阅读 196

收藏
2020-07-07

共1个答案

一尘不染

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

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

keyKMS.Types.GenerateDataKeyResponse-回调的第二个参数(在回调风格)。

eAWSError-回调FUNC的第一个参数

注意:await表达式仅在异步函数中允许

2020-07-07