Es scheint, als ob ein Compiler/Parser intelligent genug sein sollte, um zu erkennen, ob eine Funktion await
verwendet, dann wird sie automatisch zu einer async
Funktion.Warum zwingt mich Javascript (ES.next), eine Funktion als async zu deklarieren, wenn ich sie verwenden möchte?
Warum muss ich das Schlüsselwort async
eingeben? Es fügt Unordnung hinzu und es gibt viele Male, wo ich vergesse, es hinzuzufügen, und ich bekomme einen Fehler und dann muss ich gehen und es hinzufügen.
Wäre es von Nachteil, wenn der Compiler die Funktion automatisch auf async
hochfährt, wenn er await
sieht und nur jedem die Mühe erspart, damit umzugehen?
Die Tatsache, dass Sie manchmal vergessen, es hinzuzufügen, sollte Grund genug sein. Wenn du den Code schreibst und vergisst, ihn hinzuzufügen, welche Hoffnung hast du, herauszufinden, was hier vor sich geht? – rockerest
Danke. Ich habe ES7 im Titel hinzugefügt, um genauer zu sein. Obwohl es keine Anforderung von Javascript selbst ist, denke ich, dass so ziemlich jede größere Javascript-Implementierung zu ursprünglichem Code kompiliert. Zumindest für den Abschnitt, die heiß sind. –
Ohne explizite Definition einer asynchronen Funktion, wie kann ein Leser herausfinden, dass es asynchron ist? Sie erwarten nicht, dass ein Leser den gesamten Text der Funktion liest, um ein "Warten" zu finden, um sicherzustellen, dass es asynchron ist oder nicht. –