AWS SDKのJavascriptでAsyncとAwaitを利用する方法
2023-09-21 20:17:23
質問
AWS SDKでKMS libaryを使って作業しています。コールバックの代わりにasyncとawaitを使いたいのですが、どうすればいいですか?
import AWS, { KMS } from "aws-sdk";
this.kms = new AWS.KMS();
const key = await this.kms.generateDataKey();
しかし、これは非同期関数でラップされると動作しません。
ここでasyncとawaitを使うにはどうしたらいいでしょうか?
どのように解決するのですか?
aws-sdkのバージョン2.xを使用している場合、aws-sdkのバージョン2.xに対応するように
aws.Request
をプロミスに変換することができます。
.promise()
という関数に変換する。
あなたの場合は
try {
let key = await kms.generateDataKey().promise();
} catch (e) {
console.log(e);
}
その
key
は
KMS.Types.GenerateDataKeyResponse
- であり、コールバックの2番目のパラメータである(コールバックスタイル)。
は
e
は
AWSError
- コールバック func の最初のパラメータ
に注意してください。
await
の表現は非同期関数内でのみ許可されます。
関連
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】「npm install」と「npm rebuild」の違いとは?
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] async/await関数を並列に呼び出す
-
[解決済み] 一般的に、Node.jsは10,000の同時リクエストをどのように処理するのですか?
-
[解決済み】非同期/待機クラス コンストラクタ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】Mongooseで配列の値を更新する方法
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] nodejs - http.requestでresponse.writeを使用する場合、第一引数は文字列またはBufferでなければなりません。
-
[解決済み] "致命的なエラーです。grunt "コマンドを実行すると、"Unable to find local grunt. "と表示されます。