Aus Sprache Sicht ist die async
/await
Schlüsselwörter in JavaScript ist sehr eng mit der Art und Weise entwirft sie in C# arbeiten.
Ich habe einen alten Blog-Beitrag, der einige Diskussionen rund um beschreibt, warum async
explizit in C# hinzugefügt wurde: see Inferring "async"
here. Kurz gesagt, das Hinzufügen von Schlüsselwörtern ist eine potenziell bahnbrechende Änderung einer Sprache. Stellen Sie sich eine vorhandene App vor, die eine var await = false;
oder etwas von dieser Art verwendet.
Oder für ein Beispiel, wie dies mehrdeutig sein könnte, var await = function() {};
, die als await (x);
verwendet werden würde. Betrachtet man die Verwendung await (x);
, würde es dem Compiler schwer fallen zu entscheiden, welche Art von Ausdruck das ist. Sie könnten argumentieren, dass await
ein Schlüsselwort ist, es sei denn gibt es eine Variable im Bereich mit diesem Namen, aber das wird wirklich haarig.
A viel sauberer Lösung ist, ein Paar von Schlüsselwörtern einzuführen, so async
(die nur für Zwecke verwendet und Lambdas und ist nicht mehrdeutig) ermöglicht die await
Schlüsselwort, aber nur innerhalb dieses Bereichs. Es gibt ähnliche Vorteile, function*
bezeichnen Generatoren, anstatt nur das Vorhandensein von yield
.
Es ist nicht nur weniger zweideutig (Aufrechterhaltung der Abwärtskompatibilität mit Code, die await
für andere Dinge verwendet), aber es ist auch einfacher, sowohl für Software und Menschen zu analysieren.
Ich kann mir nur vorstellen, dass es Parsing einfacher macht .... –
In diesem Beispiel würde es nicht viel Sinn machen. Sie führen etwas asynchron aus und sagen dann, dass Sie auf Ergebnisse von getUser warten sollen. Es könnte im Zusammenhang mit einer größeren Funktion sinnvoller sein. – Neil
Sie könnten diesen Blog nützlich finden: https://www.twilio.com/blog/2015/10/asyncawait-the-hero-javascript-deserved.html Ich stimme zu, es ist wahrscheinlich ein Parsing-Problem. Aus dem Blog: "Wenn eine Funktion als async deklariert wird, ist sie in der Lage, dem aufrufenden Code eine Ausführung zu geben, während sie darauf wartet, dass ein Versprechen gelöst wird." – scrappedcola