🙆

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

2020/01/21に公開

はじめに

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();

GitHubで編集を提案

Discussion