settopending(f,fb)是第一個被調用的函數,我不確定是否我沒有正確編寫回調函數,因爲applytransaction(t,f,fb)永遠不會被調用。打印「第一」和「第二」,但不打印「第三」和「第四」。我錯誤地設置了應該調用applytransaction(t,f,fb)的回調還是存在其他問題?Node.JS回調函數沒有被執行
function update(document,f,fb)
{
this.transactions.update(
{ _id: document._id, state: "initial" },
{
$set: {state: "pending"},
$currentDate: {lastModified: true}
}
);
console.log("Second")
}
function settopending(f,fb)
{
console.log("First");
var t = this.transactions.findOne({ state: "initial" } , function(err, document) {//CALLBACK
update(document,f,fb , function(err, document) {//CALLBACK
console.log("Third");
applytransaction(document,f,fb);
});
});
}
function applytransaction(t,f,fb)
{
console.log("Fourth");
x=fb(t.value);
y=f(t.value);
this.model.update(
{ _id: t.source, pendingTransactions: { $ne: t._id } },
{ $inc: { bal:x }, $push: { pendingTransactions: t._id } }
);
this.model.update(
{ _id: t.destination, pendingTransactions: { $ne: t._id } },
{ $inc: { bal: y }, $push: { pendingTransactions: t._id } }
)
}
'功能更新(文檔,F,FB)' - 有沒有聲明回調參數也沒有 - 也叫任何回調,'F'和' fb'永遠不會被使用! ...'this.transactions.update'接受一個回調參數嗎? –