提问人:Alexander Fernandez 提问时间:11/10/2023 更新时间:11/10/2023 访问量:49
解释 ts 语法 () => async () => {} [duplicate]
Explain ts syntax () => async () => {} [duplicate]
问:
我最近在一个 react 项目中读到了这样的代码:
export const funcName = (
arg1: Type1,
arg2: Type2,
...
argN: TypeN,
) => async (dispatch: Dispatch) => {
// function body
// ..
};
而且我无法理解双箭头()语法。() => async => {}
有人能告诉我这里发生了什么吗? 谢谢
答:
3赞
OmegaNalphA
11/10/2023
#1
这是在说你正在返回一个接受 Dispatch 的函数。这很可能以某种方式用于 Redux。
这也称为“高阶函数”,即接受某些参数并返回函数的函数。在本例中,为异步函数。
更清楚的是,当你调用 funcname 时,里面的函数不会被执行,它只是被构建。不过,async 函数可以访问传递给 funcname 的参数,因此它有助于构建它。
1赞
Dimava
11/10/2023
#2
如果将其转换为函数语法,则可能更容易理解:
export function funcName (
arg1: Type1,
arg2: Type2,
...
argN: TypeN,
) {
return async function takesDispatch(dispatch: Dispatch) {
// function body
// ..
}
}
所以它被称为
let takesDispatch = funcName(arg1, arg2, ... args)
await takesDispatch(dispatch)
评论