Winkel - / Typoskript - Aufruf einer Funktion nach der anderen geführt wurde

Möchte ich nennen f2 nach f1 abgeschlossen. f1 Funktion synchrone oder asynchrone. Ich brauche ein Beispiel, das funktioniert in beiden Fällen. Ich habe eine Lösung gefunden, mit einem Promise und einen timer:

global() {
    this.f1().then(res => {
        this.f2()
    })
}

f1() {
    return new Promise<any>((resolve, reject) => {

        //Some code...

        setTimeout( () => {
            resolve(x);
        }, 1500);
    });
}

f2() {
    //Some code...
}

Das problem ist das Programm immer noch warten 1500ms. Ich will nicht f2 starten, bevor f1 fertig ist.
Gibt es eine Möglichkeit zu warten, die Zeit benötigt, nicht mehr oder weniger?

  • Was f2(); f1();
  • Warum sind Sie 1500ms warten bis ausgeführt f2? Wenn an irgendeinem Punkt in der Zukunft, es dauerte länger, um die Daten abzurufen, die für f1 zu vervollständigen, würde der code zu brechen.
  • Sie erweitern Ihre Frage zu sagen, was sonst passiert in f1, wenn es nur die code mit Ihrem timeout-dann könnte man sicher löschen. Wenn es einen Aufruf zum abrufen von remote-Daten, dann wird es wieder ein Versprechen also, das ist das Versprechen, das Sie zurückgeben müssen aus f1 und dann f2 wird ausgeführt, sobald die Daten zurückgegeben hat.
InformationsquelleAutor veben | 2018-01-31
Schreibe einen Kommentar