settopending(f、fb)が最初に呼び出される関数です。applytransaction(t、f、fb)が呼び出されないため、コールバックを正しく記述しなかったかどうかはわかりません。 "First"と "Second"が印刷されますが、 "Third"と "Fourth"は印刷されません。私は間違って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)が' - コールバック引数宣言も-alsoと呼ばれる任意のコールバック、 'F'はありませんと' fb'は決して使用されません! ... 'this.transactions.update'はコールバックパラメータを受け入れますか? –