配列全体を反復処理し、すべてのオブジェクトをデータベースに保存する必要があります。配列を反復処理してオブジェクトを保存した後のコールバック
最後に、保存されたオブジェクトと失敗したオブジェクトのすべてをarray
とするコールバックが必要です。作品上記
exports.addList = (app, body, callback) => {
var savedObjects = []
var failedObjects = []
body.forEach((element, index) => {
body[index] = _.pick(element, 'userAId','userBId')
db.List.create(element).then((list) => {
savedObjects.push(element)
if (index == body.length - 1) {
callback(savedObjects, failedObjects)
}
}).catch((error) => {
if (error.name === "SequelizeUniqueConstraintError") {
failedObjects.push(element)
if (index == body.length - 1) {
callback(savedObjects, failedObjects)
}
})
})
}
コード:以下
は、私が持っているコードです。これを達成するための方法はありますか?
これは現在どのように機能していますか?これを[Code Review](http://codereview.stackexchange.com/)にも投稿する価値があります。 –
これはあなたが必要とするものを達成するための合理的な方法です。いくつかの繰り返しを切っておきたい場合は、あなたの約束をチェーンの終わりに1回の 'finally'コールで入れ、' then'と 'catch'ハンドラからそれを取り除くことができます。 –
ありがとうございます。私はjavascriptが新しく、これが正しいかどうかは分かりませんでした。 @ JordanBurnett私はコードDRYを維持するためにリファクタリングします。 – user1107173