Ich bin eine wirklich harte Zeit mit Funktion von JavaScript ist, und ich werde es mit diesem Stück Code erklären (lässt patients
Größe sagen 3):Funktionen im Inneren für Schleifen - wie es richtig geht?
for(j=0; j<patients.length; j++){
console.log("before function - "+j);
DButils.getDaysLeft(patients[j] , function(daysLeft){
console.log("inside function - "+j);
});
console.log("end - "+j);
}
Dies ist die Ausgabe erhalte ich:
before function - 0
end - 0
before function - 1
end - 1
before function - 2
end - 2
inside function - 3
inside function - 3
inside function - 3
wegen dieses Problem, wenn ich patients[j]
innerhalb der Funktion tun immer es gibt mir undefined
, offensichtlich, weil die Patienten nur in der Größe von 3
ist ich verstehe, dass Die Funktion funktioniert als Thread und daher endet die Schleife, bevor wir den Rückruf der Funktion eingeben, aber wie löse ich sie? Was kann ich tun, damit es wie eine normale "for-Schleife" funktioniert, wie c#
oder java
würde mit diesem Stück Code arbeiten?
Willkommen bei JS. Du musst sehr verwirrt gewesen sein. Machen Sie die 'function (daysLeft) {console.log (" innerhalb Funktion - "+ j)}' Funktionsdefinition ein IIFE und speichern Sie 'j' unter einer Schließung. Wie '(function (daysLeft) {console.log (" innerhalb Funktion - "+ j)}) (j);' – Redu