ここでは、配列内のオブジェクトのリストを使用して更新呼び出しを行っているときに、ループバックを使用しています。
コールバックに入るとすでに呼び出されています!
シーンは、ループ内でコールバックを定義しました。最初のループでは、実際に呼び出されます。
私はどこに道を探しています
クエリMySQLプラン呼び出しのオブジェクトのすべてのリストを更新する必要があります。
Inward.updateIsActiveDetails = function(data, callback) {
var id = _.map(data, 'id');
if (id.length > 0) {
_.forEach(id, id => {
console.log('id....:', id)
Inward.updateAll({id}, {
isActive: 0,
}).then(updateresult => {
console.log(updateresult);
// callback(error); showing err with it... (callback already called)
}).catch(function(error) {
callback(error);
});
});
} else {
callback(null, {
success: true,
msg: 'No records to update',
});
}
};
出力:
id....: 3
id....: 4
{ count: 1 }
{ count: 1 }
適切な解決策に感謝します
これが私の最終的で実用的な答えです。
基本的に、updateAllクエリは1回実行され、組み込みクエリとして実行されます。
id: {
inq: _.map(data, 'id'),
}
したがって、それを実行した後、それぞれの行のみが更新されます!とても興味深い。
Inward.updateIsActiveDetails = function (data, callback) {
Inward.updateAll({
id: {
inq: _.map(data, 'id'),
},
}, {
isActive: 0,
}, function (error, resultDetails) {
if (error) {
console.log('error', error);
callback(error);
} else {
console.log('resultDetails', resultDetails);
callback(null, resultDetails);
}
});
};
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加