Das ist so seltsam! Ich betrachte AWS Lambda Beispielcode, und sie haben eine seltsame ES6 Erklärung für ihre Rückrufe:Warum akzeptieren Pfeilfunktionen Funktionsaufrufe im Körper?
const done = (err, res) => callback(null, {
statusCode: err ? '400' : '200',
body: err ? err.message : JSON.stringify(res),
headers: {
'Content-Type': 'application/json',
},
});
Also, ich mein eigenes vereinfachtes Beispiel, um zu versuchen einen Sinn dieser Erklärung zu machen.
function add (x, y) {
return x + y
}
var done = (a, b) => add(1,7)
console.log(done(1,2)) // 8
Der obige Code logs 8 am Ende. Ich dachte, es wäre das Äquivalent sein:
function add (x, y) {
return x + y
}
var done = function (a, b) { add(1,7) }
console.log(done(1,2)) // undefined
Aber es ist nicht. Es produzierte undefiniert. Kann jemand erklären, wie der Funktionsaufruf in der Fettpfeil-Deklaration nicht nur ausgeführt und zurückgegeben wird?
Dank! Ich kann es noch nicht akzeptieren. Im AWS-Beispiel wird done zu einer Funktion, die die Ausführung der Callback-Funktion mit bestimmten Parametern zurückgibt. – Costa
@Costa - Es gibt den Wert, der durch Aufrufen der Funktion namens "Callback" – Quentin