Autor Beitrag
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: So 03.07.22 10:42 
Hallo,

ich will eine beliebige Menge an Wiederholungen derselben (selbstgeschriebenen) Function ablaufen lassen. Die Function bekommt zwei Argumente. Soweit einfach, etwa


ausblenden JavaScript-Quelltext
1:
2:
3:
4:
5:
MeineFunction(100350);
MeineFunction(8604000);
MeineFunction(201200);
MeineFunction(845445646);
MeineFunction(94060);


Dummerweise wird auf diese Art jeder Aufruf quasi gleichzeitig abgefeuert. Dabei ist mir aber wichtig, dass die Function erst DANN erneut ausgeführt wird, wenn sie VORHER komplett abgeschlossen ist. Wichtig ist außerdem, dass die Function heute nur 5x aufgerufen wird, morgen 2x, übermorgen vielleicht 10x und so weiter (jedes Mal mit immer anderen Argumenten)...

Ich habe mich etwas in Deferrer und Callbacks eingelesen, aber mir wird der dann zu generierende Code frickelig. Darum meine Frage, wie würdet Ihr den oben genannten Code umgestalten, dass die Function jedes Mal erst durchgelaufen ist, bevor sie erneut aufgerufen wird?

LG
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 03.07.22 13:04 
Was machen denn die Funktionen, daß sie gleichzeitig ausgeführt werden? Sind es asynchrone Funktionen? Dann hilft wohl einfach ein await, s.a. Javascript: async/await.
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: So 03.07.22 17:56 
Die Function soll immer erst vollständig zu Ende ausgeführt worden sein, bevor es im Code weitergeht (also die Function mit anderen Parametern erneut aufgerufen wird).

Irgendwas scheint aber dafür zu sorgen, dass die Function einfach ausgeführt wird und anstatt zu warten, startet sie danach ebenfalls gleich nochmal neu.

Danke für Deinen Tipp, aber genau das ist, was ich meinte:Ich muss den Code immer on-the-fly generieren, das heisst, das wird mir mit all den Extrasachen viel zu verschachtelt.

Gibt's vielleicht eine andere Idee?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 03.07.22 21:13 
Sorry, aber das verstehe ich so nicht.

Zeige doch mal die Funktion, denn normalerweise werden Funktionen erst komplett (d.h. synchron) ausgeführt, bevor die nächste Anweisung ausgeführt wird.

Und handelt es sich um Frontend-Code einer Webseite oder um ein eigenständiges Programm?
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Mo 04.07.22 11:22 
Ja, es ist etwas kompliziert. Es geht um eine durch JS und PHP anpassbare Software, die wir unserer Firma nutzen und ich will ein paar Abläufe automatisieren, bzw. verkürzen.

Ich habe eben auch herausgefunden, was los ist. Wenn MeineFunction ausgeführt wird, wartet ein Prozess innerhalb der Software wegen eines setInterval nicht ab, sondern triggert den Interval für eine separate Funktion und der Rest spult dann weiter ab. DARUM laufen alle MeineFunction-Aufrufe praktisch gleichzeitig ab. Habe das jetzt anders gelöst und es läuft nun, wie gewünscht.

Danke für die Hilfsversuche! :)

Moderiert von user profile iconTh69: JS-Tags hinzugefügt