-1
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