我正在使用KMS库使用AWS开发工具包。我想使用异步和等待而不是回调。
import AWS, { KMS } from "aws-sdk"; this.kms = new AWS.KMS(); const key = await this.kms.generateDataKey();
但是,当包装在异步函数中时,这是行不通的。
我如何使用异步并在这里等待?
如果您使用版本> 2.x的aws-sdk,则可以aws.Request将a 转换为具有链.promise()功能的promise 。对于您的情况:
aws.Request
.promise()
try { let key = await kms.generateDataKey().promise(); } catch (e) { console.log(e); }
的key是KMS.Types.GenerateDataKeyResponse-回调的第二个参数(在回调风格)。
key
KMS.Types.GenerateDataKeyResponse
该e是AWSError-回调FUNC的第一个参数
e
AWSError
注意:await表达式仅在异步函数中允许
await