Ich habe eine große node.js-Anwendung, die stark das Modul async.js verwendet.node.js async.js nextTick vs setImmediate
Ich habe eine Menge Code wie folgt aus:
async.series([
function(callback){
sql.update(query, callback);
},
function(callback){
if (something){
sql.update(query2, callback);
}
else{
callback(null);
}
}
]);
Das große Problem ist der synchrone Rückruf in der Else-Anweisung. Ich habe vor einiger Zeit gelesen, dass Sie dies mit async.js nicht tun sollten, da dies zu unerwarteten Ergebnissen führen könnte, aber ich bin mir nicht sicher, was die beste Alternative ist. Ich lese, dass ich process.nextTick an einigen Stellen verwenden sollte, aber jetzt lese ich, dass wir das nicht verwenden sollten und es sollte gesetzt werden Sofort.
Kann mir jemand in die richtige Richtung zeigen? Vielen Dank!
Können Sie einen Link zu dem, wo Sie lesen, dass Sie das nicht tun sollten? Ich habe kein Problem damit gesehen. Es ist die Art, wie async verwendet werden sollte. Wenn Sie mit der Ausführung der Funktion fertig sind, rufen Sie zurück. Die nachfolgende Funktion wird nicht ausgeführt, bis der Rückruf aufgerufen wird. –
Ich wünschte ich könnte es finden. Ich habe es vor einer Weile gelesen. Ich weiß, dass der Rückruf aufgerufen werden muss, aber ich denke, dass es in einer der Funktionen enthalten sein sollte, die ich erwähne, um den Aufruf des Callbacks asynchron zu machen. Wir haben ein paar Kuriositäten. Nicht sicher, ob es von diesem oder etwas anderem stammt, aber ich dachte, ich würde alles entfernen, was ein Problem sein könnte. – Christie
ich denke nicht, dass es die "falsche Richtung" ist .. das Problem sollte etwas anderes sein .. das erste Argument des 'Callback' sollte Null sein, wenn es keinen Fehler gibt sonst würde der' .series' Aufruf einfach mit dem beenden Error. versuche es mit 'console.trace()', Breakpoints und mehr Ausgaben zu debuggen. – Gntem