这太奇怪了!我期待在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