Ich habe sehr einfachen Code, aber ich bin nicht in der Lage, es zu verstehen.Verwirrt über Angular2 Versprechen
ich einen Dienst haben, die
aktuelle Benutzername kehrt so mache ich folgenden Benutzernamen und Anzeige auf der Webseite geloggt. Bitte beachten Sie, aktuell angemeldeten Benutzer ist "Demo"
So jetzt, wenn ich diesen Code ausführen. Ich habe nicht Benutzername in this.username
Dies ist die Ausgabe von console.log ist
Outside -- >undefined Inside -->demo
Shoulnd't diese Anzeige 'Demo' in beiden Fällen. (drinnen und draußen) Warum draußen ist undefiniert ??
Bitte helfen Sie mir, dies zu verstehen.
Es ist, weil der Anruf asynchron ist. Es startet die 'getUsername()' Methode, aber während es läuft, geht es weiter. Es trifft also zuerst auf das Outside-Protokoll, wo 'this.username' immer noch undefiniert ist, dann endet die Methode und Sie erhalten das Inside-Protokoll –
Es ist nichts mit Angular 2 zu tun. So funktioniert der asynchrone Aufruf, [mehr hier] (https : //developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests) –