gpt4 book ai didi

javascript - 如何包装 javascript lambda 处理函数?

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:07 25 4
gpt4 key购买 nike

我有几个用 Javascript 编写的 lambda 函数。有什么方法可以包装这些处理​​函数来执行一些常见的日志记录代码吗?

// handlers.js
export const emailHandler = (event, context, callback) => {
email();
}

export const loginHandler = (event, context, callback) => {
login();
}

类似这样的事情:

// genericHandler.js
export const genericHandler => (event, context, callback) => {
console.log('Event', event);
// How can I also make this work for login handler?
return emailHandler(event, context, callback)
}

最佳答案

我认为这里的解决方案是将一些通用逻辑放入一个包/函数中,您可以在每个包/函数中使用它们。您不希望将一个 Lambda 函数的代码包含在另一个函数中。您希望尽可能减少代码的大小,以便冷启动更快。诚然,如果您的代码很小,那不会有很大的区别,但这有点反模式,将相同的代码封装在多个函数中,并让代码根据其调用方式执行不同的操作。

话虽如此,您始终可以在函数中包含多个入口点,然后传递一些内容来决定从那里调用什么,甚至传递您想要调用的函数。所以像这样:

export const emailHandler = (event, context, callback) => {
genericHandler(event, context, callback, email);
}

export const loginHandler = (event, context, callback) => {
genericHandler(event, context, callback, login);
}

export const genericHandler => (event, context, callback, function) => {
console.log('Event', event);
// How can I also make this work for login handler?
return function(event, context, callback)
}

const email = (event, context, callback) => {
// email code
}

const login = (event, context, callback) => {
// login code
}

关于javascript - 如何包装 javascript lambda 处理函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60012997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com