Ich habe ein Objekt mit unterschiedlichen Eigenschaften in Nodejs, gibt es verschiedene Async-Funktion, die auf dieses Objekt mit einer komplexen Ausführung zugreifen und ändern. Eine einzelne asynchrone Funktion kann interne Callbacks (oder asynchrone Funktionen) haben, deren Ausführung einige Zeit in Anspruch nehmen kann. Diese Funktion ändert dann das Objekt. Ich möchte dieses Objekt sperren, bis ich mit allen Änderungen fertig bin, nur danach wird jede andere asynchrone Funktion darauf zugreifen.Wie sperrt man Objekte, die von mehreren asynchronen Methoden in nodejs geteilt werden?
Beispiel:
var machineList = {};
function operation1(){
waitForMachineList();
//complex logic
//modification of machineList, some closure and callbacks functions and again modification of machineList
leaveFromMachineList();
}
function operation2(){
waitForMachineList();
//complex logic
//modification of machineList, some closure and callbacks functions and again modification of machineList
leaveFromMachineList();
}
function operation3(){
waitForMachineList();
//complex logic
//modification of machineList, some closure and callbacks functions and again modification of machineList
leaveFromMachineList();
}
function operation4(){
waitForMachineList();
//complex logic
//modification of machineList, some closure and callbacks functions and again modification of machineList
leaveFromMachineList();
}
Angenommen Maschinenliste ist eine komplexe Aufgabe, und es gibt verschiedene Operationen an diesem Objekt durch unterschiedliche Methoden erfolgen async werden (operation1(), operation2(), ...), ihn zu ändern . Diese Operation wird in beliebiger Reihenfolge aufgerufen, und eine beliebige Anzahl von Zeitpunkten je Anfrage kommt vom Client. Jede Anfrage führt eine einzelne Operation aus.
Es gibt einige interne Schließfunktionen und Rückrufe (oder asynchrone Funktionen) in jeder Betriebsfunktion, es kann einige Zeit dauern. Aber ich möchte MachineList Objekt sperren, bis eine einzelne Operation abgeschlossen ist.
Am Anfang einer Operation möchte ich Objekt wie waitForMachineList() sperren und Sperre nach leaveFromMachineList() freigeben.
Also endlich möchte ich Sperrmechanismus in Nodejs implementieren. Genauso wie Critical Session in C++ und C# sperren.
Also bitte einige helfen, es in Nodejs zu implementieren? oder schlagen Sie mir ein beliebiges Knotenmodul vor, das ich dafür verwenden kann.