Javascript 返回带有回调函数参数的函数
考虑这一功能:Javascript 返回带有回调函数参数的函数,javascript,function,parameters,callback,arrow-functions,Javascript,Function,Parameters,Callback,Arrow Functions,考虑这一功能: export const catchAsync = (handler) => (...args) => ^^^^ why are these the parameters to handler, and not catchAsync? handler(...args).catch(args[2]); 在第一个返回的函数中,它表示: (...args: [Request, Response, NextFunction])
export const catchAsync = (handler) =>
(...args) =>
^^^^ why are these the parameters to handler, and not catchAsync?
handler(...args).catch(args[2]);
在第一个返回的函数中,它表示:
(...args: [Request, Response, NextFunction]) =>
现在,据我所知,…args将完全是一件事:“handler”它不会是回调函数的参数,因为这些不是catchAsync的参数,它们是回调函数“handler”的参数。关于将回调函数的参数传递给原始函数,是否有我没有学到的东西
谢谢 catchAsync是一个返回另一个函数的函数。外部函数和内部函数分别传递不同的内容。您可以使用以下代码:
const handlerWithCatch = catchAsync(someHandlerFn);
handlerWithCatch(someRequest, someResponse, someNextFn);
// Or on a single line:
catchAsync(someHandlerFn)(someRequest, someResponse, someNextFn)
在insider上,
处理程序将包含someHandlerFn
,而参数将是[someRequest,someResponse,someNextFn]的数组catchAsync
是一个返回另一个函数的函数。外部函数和内部函数分别传递不同的内容。您可以使用以下代码:
const handlerWithCatch = catchAsync(someHandlerFn);
handlerWithCatch(someRequest, someResponse, someNextFn);
// Or on a single line:
catchAsync(someHandlerFn)(someRequest, someResponse, someNextFn)
在insider上,处理程序将包含someHandlerFn
,而args
将是[someRequest,someResponse,someNextFn]
的数组,只需重新阅读您的问题1000次即可
正如您所提到的,…args
不是catchAsync的参数。此函数是如何在Javascript中实现策略设计模式的
catchAsync本身将返回一个函数,您将使用req、res和next调用该函数
catchAsync(handler)(req,res,next);
把你的问题重读1000遍
正如您所提到的,…args
不是catchAsync的参数。此函数是如何在Javascript中实现策略设计模式的
catchAsync本身将返回一个函数,您将使用req、res和next调用该函数
catchAsync(handler)(req,res,next);
您当前如何调用此函数?预期输出和实际输出是什么?你确定这不是typescript代码吗?好的,我编辑了类型信息以显示JS代码。你当前如何调用此函数?预期输出和实际输出是什么?你确定这不是typescript代码吗?好的,我编辑了类型信息,只是显示了JS代码。好的,谢谢,我正在接近,仍在努力解决这个问题好的,谢谢,我正在接近,仍在努力解决这个问题