Ich brauche eine "endlose" While-Schleife, die Versprechen hat. Hier einige Beispiel-Code:Wie eine asynchrone Endlosschleife mit Promises
let noErrorsOccured = true
while (noErrorsOccured){
someAsyncFunction().then(() => {
doSomething();
}).catch((error) => {
console.log("Error: " + error);
noErrorsOccured = false;
});
}
function someAsyncFunction() {
return new Promise ((resolve, reject) => {
setTimeout(() => {
const exampleBool = doSomeCheckup();
if (exampleBool){
resolve();
} else {
reject("Checkup failed");
}
}, 3000);
});
}
Also diese while-Schleife sollte endlos laufen, es sei denn ein Fehler auftritt, dann wird die while-Schleife stoppen sollte. Wie kann ich das erreichen?
Ich hoffe, Sie verstehen, was ich meine, und Dank im Voraus :)
Versprechen Reaktionen (Aufruf erfüllt oder Ablehnung Handler) werden asynchron nach einem Thread ausgeführt wodurch sie ausgeführt werden, abgeschlossen. Die erste while-Schleife ist eine unendliche ** blocking ** -Schleife, die eine unendliche Anzahl von Versprechen erzeugt, die nie erledigt werden, weil Timeout-Callbacks nie auftreten: D _Possibly_ Sie möchten einen Timeout- oder Intervall-Timer, der 3 Sekunden nach einem vorherigen Versprechen wartet erstellt für eine asynchrone Prüfung wird vor dem Ausführen einer anderen Prüfung abgerechnet? – traktor53
Das Problem ist, dass ich nicht wirklich weiß, wie lange es dauert, bis mein Versprechen gelöst ist. Ich habe nur 'setTimeout()' verwendet, um mein Beispiel zu verdeutlichen. Aber die Lösung von Felix Kling funktioniert perfekt, es gibt keine Notwendigkeit für eine andere Lösung, aber trotzdem danke :) – C4rmond4i