秘訣は、呼び出しを行うブロックの後にデータのコンソールログを作成し、コンソールで最初にメッセージが実際に非同期である場合は、コールバックで console.log を作成することです
mongoのドライバーとしてmongojsを使用しています:
collection.find({}, function(err, res) {
console.log("done")
});
console.log("sendign signal")
非同期の場合、コンソールで:
sendign signal
done!
連鎖した動作のために、そのようなものを作ることができます
dbChain = (function() {
var chain = [], cursor = 0, busy = false;
chainin = {
push : function(aFn) {
if(!busy) {
chainin.reset();
aFn();
busy = true;
} else {
chain.push(aFn)
}
},
next : function() {
cursor++;
if(chain[cursor]) {
chain[cursor]();
} else {
chainin.reset();
}
},
reset : function() {
chain = [];
cursor = 0;
busy = false;
}
}
return chainin;
})()
そして、あなたがしなければならないすべてのdb呼び出しで:
dbChain.push(...(a function ) ...)
すべてのコールバックで
dbChain.next()