【发布时间】:2018-02-15 02:55:04
【问题描述】:
我们正在用node.js 4.3 编写AWS lambda 函数,但是我们遇到了一个奇怪的behaviour 并抛出了一个错误。
第一:
'use strict';
exports.handler = function(event, context, callback) {
throw new Error();
};
这是像预期的那样抛出:
at exports.handler (/var/task/TestCode.js:4:11)
但是,如果我们添加一个函数(甚至未调用),它调用不同类/obj 的函数,其中包含一个带有 obj 的 lambda 表达式,我们会得到一个神秘的抛出信息。 为了让事情更容易理解,这里有一些代码:
'use strict';
function aRandomFunction() {
something.foo((obj) => {});
}
exports.handler = function(event, context, callback) {
throw new Error();
};
现在我们得到一个我们不明白为什么的日志:
at something.foo.exports.handler (/var/task/TestCode.js:8:11)
谁能解释一下为什么会这样?好像有点JS魔法我不懂:)
谢谢
【问题讨论】:
-
堆栈跟踪中还有什么?
-
@Michael-sqlbot 就是这样。仅在 [参见上面的代码] 处出错。但这在 aws lambda 中是正常的。
标签: javascript node.js amazon-web-services lambda