mikdoe
Moderator
Trotz einiger Recherche und ein paar Versuchen mit div. JS und jQuery Varianten z. B. mit
Die Frage ist: Wie kann man die Funktionen a(), b() und c() parallel und ende() erst dann starten, wenn a(), b() und c() fertig sind?
Die Lösung soll so sein, dass an der derzeitigen Syntax der Funktionsaufrufe nichts geändert werden braucht, also auch keine Callback Parameter hinzufügen etc.
Folgender Code:
Ein Stichwort würde mir erstmal reichen, dann gurgle ich mal danach.
Danke!
promise
oder .done()
oder .when()
etc. habe ich nirgendwo das raus bekommen was ich haben möchte.Die Frage ist: Wie kann man die Funktionen a(), b() und c() parallel und ende() erst dann starten, wenn a(), b() und c() fertig sind?
Die Lösung soll so sein, dass an der derzeitigen Syntax der Funktionsaufrufe nichts geändert werden braucht, also auch keine Callback Parameter hinzufügen etc.
Folgender Code:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Test teils asynchrone, teils synchrone Ausführung</title>
<meta charset="utf-8">
</head>
<body>
<div>
Frage:<br>
------<br>
Wie kann man die Funktionen a(), b() und c() parallel und ende() erst dann starten, wenn a(), b() und c() fertig sind?<br>
<br>
Es soll das ausgegeben werden:<br>
<br>
Funktion B trödelt<br>
Funktion C<br>
Funktion A langsam<br>
Funktion B fertig<br>
Funktionen ENDE<br>
<br>
Danke!<br>
<hr>
</div>
<div id="einfuege"></div>
<script>
"use strict";
function a() {
window.setTimeout(function() {
document.getElementById('einfuege').innerHTML += 'Funktion A langsam<br>';
},1000
);
}
function b() {
document.getElementById('einfuege').innerHTML += 'Funktion B trödelt<br>';
window.setTimeout(function() {
document.getElementById('einfuege').innerHTML += 'Funktion B fertig<br>'
},2000
);
}
function c() {
document.getElementById('einfuege').innerHTML += 'Funktion C<br>';
}
function ende() {
document.getElementById('einfuege').innerHTML += 'Funktionen ENDE<br>';
}
a();
b();
c();
ende();
</script>
</body>
</html>
Danke!
Zuletzt bearbeitet: