function saveReport(t) {
return new Promise((resolve, reject) => {
return new Models
.Cycle()
.fetchAll()
.then((cycles) => {
const promises = cycles.map(cycle => {
return ReportService
.getReportByOrgId(cycle.get('orgId'), cycle.id, undefined, t)
.then(content => {
let md5 = crypto.createHash('md5');
let dayNo = parseInt(Date.now()/(1000 * 60 * 60 * 24), 10);
var id = md5.update(cycle.id + cycle.get('orgId') + 'requestRealTimeReport' + dayNo).digest('hex');
return new Models
.Report()
.save({
id: id,
statistics: JSON.stringify(content)
}, {
transacting: t,
insert: true
})
.tap(report => {
resolve(report);
})
.catch(console.error);
})
.catch(console.error);
});
return Promise.all(promises)
});
})
}
DbService
.Bookshelf
.transaction(saveReport)
.catch(console.error);
を、私はこのコードの一部を削除します。本棚長いトランザクション問題
.tap(report => {
resolve(report);
})
それは常に長いトランザクションが付属して、私はちょうどそれがトランザクションを防ぐ方法この.TAP()のものの間に何が起こったのか疑問に思います長い取引から
コードの末尾が質問の一部でないように、書式設定を少し修正することもできます。 – Doug
@Dougが質問を更新しました。良いキャッチ - その部分を見ていない。 – nmagerko