はじめに
Lambda(Node.js)でDynamoDBに接続し、値を取得したいときに、
非同期であるために、自分でPromiseで返す関数を作成していた。
コード
/**
* データの挿入を行う。
* @param ddb
* @param params
* @returns {Promise<any>}
*/exports.addItem=function(ddb,params){returnnewPromise(function(resolve){ddb.putItem(params,function(err,data){if(err){console.log("PUT失敗",err,err.stack);}else{console.log("PUT成功");resolve(data);}});});};awaitthis.addItem(ddb,putParams);
改善後
なんと最後にpromise()を呼ぶことで、Promise型のものを返却してくれるようで、わざわざ自分でラップする必要がなかった。
awaitddb.getItem(findParams,function(err,data){if(err){console.log("GET失敗");}else{console.log("GET成功");}}).promise();