Wie man Funktionen mit Verzögerungen kettet. Ich habe folgendes versucht:ES6 verspricht: wie Funktionen mit Argumenten verkettet werden
Promise.resolve()
.then(setKeyframe('keyframe-0'))
.then(delay(3000))
.then(setKeyframe('keyframe-1'))
.then(delay(3000))
.then(setKeyframe('keyframe-2'))
;
function delay(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms);
});
}
function setKeyframe (name) {
var element = document.getElementsByClassName('animation-container')[0];
element.className = 'animation-container ' + name;
}
Alle Funktionen scheinen sofort nacheinander aufgerufen zu werden. Die Verzögerungsfunktion verzögert die Kette nicht. Was vermisse ich?
Sie haben einen Rückruf zu übergeben, die ein Versprechen in 'then' zurückkehrt, kein Versprechen selbst. – Bergi
Sie beginnen alle Aktionen auf einmal –