DynamoDBでPromiseが使えた(Lambda Node.js)

プログラミング
アイキャッチ
スポンサーリンク

はじめに

Lambda(Node.js)でDynamoDBに接続し、値を取得したいときに、
非同期であるために、自分でPromiseで返す関数を作成していた。

コード

/**
 * データの挿入を行う。
 * @param ddb
 * @param params
 * @returns {Promise<any>}
 */
exports.addItem = function (ddb, params) {
return new Promise(function (resolve) {
ddb.putItem(params, function (err, data) {
if (err) {
console.log("PUT失敗", err, err.stack);
} else {
console.log("PUT成功");
resolve(data);
}
});
});
};
await this.addItem(ddb, putParams);
スポンサーリンク

改善後

なんと最後にpromise()を呼ぶことで、Promise型のものを返却してくれるようで、わざわざ自分でラップする必要がなかった。

await ddb.getItem(findParams, function (err, data) {
if (err) {
console.log("GET失敗");
} else {
console.log("GET成功");
}
}).promise();

コメント

タイトルとURLをコピーしました