Ich muss die folgende Logik implementieren.So führen Sie Promise erneut aus, bis eine Bedingung
Ich muss ein Bild herunterladen, aber irgendwann passiert es, dass eine heruntergeladene Datei beschädigt ist, also muss ich versuchen, es erneut herunterzuladen. So sieht mein Download-Versprechen aus.
return Downloader.downloadImage(downloadUrl, fileName).then((filename) => {
// Update some info, save ... and return new promise
return doStuffAndReturnPromise(filename);
});
Aber wie ich beschrieben habe ich oben überprüfen müssen, ob die heruntergeladene Datei gültiges Bild ist und nur dann mit Erfolg zurückkehrt Versprechen.
Hier ist ein Skelett.
Das Problem hier ist, dass ich das Download-Versprechen synchron ausführen muss und nur dann weiter iterieren und ein neues Versprechen laufen.
Bitte schlagen Sie den besten Weg, um dieses Problem elegant zu lösen.
Danke.
Verwenden Sie einen rekursiven Ansatz anstelle einer Schleife. – Bergi
@Bergi könnten Sie bitte ein Beispiel geben – bxfvgekd
[Hier] (https://stackoverflow.com/a/36135070/1048572) ist ein größeres Beispiel – Bergi