Frage von dirtybobic, 5

2 Funktionen in JavaScript synchronisieren?

Hey Leute,

ich habe 2 Funktionen welche ineinandergreifen und an sich funktionieren. Funktion A übergibt in einer ForSchleife einen Wert A an Funktion B, welche diesen Wert in eine externe Tabelle einträgt. Das übermitteln der Daten in die Tabelle (Funktion B) dauert aber länger als das Übertragen der Werte (Funktion A), sodass manchmal ein Wert übersprungen wird, weil schon wieder der nächste geliefert wird. Nun würde ich Funktion A gern anweisen, dass sie auf Funktion B warten soll und erst dann mti der For-Schleife weitermachen soll.

Ich arbeite in GoogleScript, d.h. Funktion A ist in Code.gs und Funktion B ist in index.html.

Leider habe ich keine Idee wie ich das machen kann??

Hier mein Code

Funktion A

function processForm() {
  
var elements = document.getElementsByName("INPUTNAME")

for (var i = 0; i < elements.length; i++) {
    var input = elements[i].value;
    google.script.run.withSuccessHandler(DataSaved).processForm2(input);
 
}
      }
  
  function DataSaved () {
      document.getElementById('demo').innerHTML = "Data Saved";
 
   }

Funktion B

     function processForm2(input) {
var ss = SpreadsheetApp.openById('X'); // WERTE IN DIE FORSCHLEIFE EINTRAGEN
var sheet = ss.getSheetByName('Sheet1');
sheet.getRange(sheet.getLastRow()+1, 1, 1, 1).setValues([[input]]);

}

Antwort
von LeonardM, 1

Ich würde funktion b einen bool zurückgeben lassen und die rückgabe von funktion b in einer variable speichern. Direkt danach in ner while schleife prüfen ob rückgabe true entspricht mit nem timeout von 100ms oderso und erst dann die while unterbrechen damit normal weitee fortgefahren werden kann. Alternativ kannst du aucj alle daten in ein array schreiben und später vom array ausfüllen

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten