私は Node.js で Mongoose を使用しており、すべての save() 呼び出しが終了した後にコールバックを呼び出す次のコードがあります。ただし、これは非常に汚い方法であると感じており、これを行うための適切な方法を確認したいと考えています。
function setup(callback) {
// Clear the DB and load fixtures
Account.remove({}, addFixtureData);
function addFixtureData() {
// Load the fixtures
fs.readFile('./fixtures/account.json', 'utf8', function(err, data) {
if (err) { throw err; }
var jsonData = JSON.parse(data);
var count = 0;
jsonData.forEach(function(json) {
count++;
var account = new Account(json);
account.save(function(err) {
if (err) { throw err; }
if (--count == 0 && callback) callback();
});
});
});
}
}