0
我在MySQL中插入了記錄knexjs
,但在立即返回舊記錄後進行選擇。爲什麼?當我設置timeout()來延遲插入和選擇函數之間時,返回正確的記錄!knexjs爲什麼mysql在插入後立即沒有返回正確的記錄選擇
function(cb) { //callUser plan
sd = moment(new Date()).format("YYYY-MM-DD HH:mm:ss");
ed = moment(new Date()).add(31, 'days').format("YYYY-MM-DD HH:mm:ss");
space = planDetail.space * 1024 * 1024 * 1024;
knex('user_plan')
.insert({
'username': userDetail.username,
'plan_id': planDetail.id,
'created': knex.raw('NOW()'),
'start_date': sd,
'end_date': ed,
'transaction_id': tran.id,
'space': space,
'slot': planDetail.slot
})
.asCallback(cb);
},
function(res, cb) {
logger.log(res);
return cb(null);
},
function(cb) {
knex.select('*').from('user_plan').where({
username: self.username,
})
.andWhere('start_date', '<', knex.raw('NOW()'))
.andWhere('end_date', '>', knex.raw('NOW()'))
.orderBy('id', 'desc')
.asCallback(function(err, rows) {
if(err) return cb(err);
logger.log(rows);
});
},
你能指定一下你函數的執行順序嗎? – RaghavGarg
你已經在標籤中指出你正在使用'async.js',但是你已經忽略了你正在使用的方法(平行,系列等),這可能是問題所在。請編輯您的問題以包含完整的代碼。 –