2017-08-07 1 views
2

Derzeit habe ich diesen Code:Wie erstellen Sie eine benannte asynchrone Pfeilfunktion?

async function getConnection(){ 
    // logic here... 
} 

Um es mit dem Rest meiner Codebasis konsistent zu machen, will ich es einen Pfeil Funktion ändern. Ich habe versucht async getConnection() => { ... }, aber das schien nicht zu funktionieren. Was wäre der richtige Weg?

Antwort

2

Pfeil Funktionen haben keinen Namen, aber man kann sich wie folgt einen Variablen zuweisen:

const normalFunc =() => { ... }; 
const asyncFunc = async() => { ... }; 

Notiz tun, die Pfeil-Funktionen sind jedoch nicht nur kürzere Notation für reguläre Funktionen, da es sind einige feine Unterschiede zu beachten (see this article for details). Wenn Sie diese Unterschiede jedoch verstehen und keinen Einfluss auf Ihren Code haben, sollten Sie in Ordnung sein.

1

Pfeil Funktionen können keinen Namen

const getConnection = async() => {} 

Aber einfach ersetzen alle Funktionen Funktionen Pfeil einfach dumm ist und in möglicherweise fehleranfällig sein. Learn all differences vorher.

+0

Hauptvertreter das Asynchron-Pfeil-Funktionen tragen nicht über Zusammenhang von einer Konstruktion, 'this' bezieht sich auf' Window'. – Crowes

+1

@Crowes Ich denke um klarer zu sein, 'this' bezieht sich auf das' this' von welcher Funktion oder Objekt die Pfeilfunktion deklariert wurde. Ich nehme an, dass ein const auf dem globalen Gültigkeitsbereich deklariert wäre, so dass Sie korrekt sind –

+0

@BrettReinhard Schau dir das an: https://stackoverflow.com/questions/22939130/when-should-i-use-arrow-functions-in-eccmascript-6?answertab=votes#tab-top – Crowes

1

Eine Pfeilfunktion kann nicht mit einem Namen deklariert, sondern zugewiesen werden.

Versuchen:

var getConnection = async() => { 
    return 'It works'; 
} 

getConnection().then(message => console.log(message)) 

hoffe, das hilft

Verwandte Themen