這太奇怪了!我期待在AWS LAMBDA示例代碼,和他們做一個奇怪的ES6聲明它們的回調函數:爲什麼箭頭函數在體內接受函數調用?
const done = (err, res) => callback(null, {
statusCode: err ? '400' : '200',
body: err ? err.message : JSON.stringify(res),
headers: {
'Content-Type': 'application/json',
},
});
所以,我做了我自己的簡單的例子,試圖作出這一聲明的意義。
function add (x, y) {
return x + y
}
var done = (a, b) => add(1,7)
console.log(done(1,2)) // 8
在結束上述日誌8的代碼。我認爲這將是等效的:
function add (x, y) {
return x + y
}
var done = function (a, b) { add(1,7) }
console.log(done(1,2)) // undefined
但事實並非如此。它產生未定義的。有人可以解釋胖箭頭聲明中的函數調用如何執行並返回一個值嗎?
謝謝!我似乎還不能接受。那麼,在AWS示例中,done會成爲一個函數,它返回具有特定參數的回調函數的執行情況? – Costa
@Costa - 它通過調用名爲'callback'的函數返回值 – Quentin