我在使用javascript练习的网站上发现了此问题:
编写一个JavaScript程序以链接异步函数。
因此,您将获得一个包含函数的列表,并且必须创建一个执行数组每个函数的函数,我试图这样做:
let chainAsyncFunc = (arrayWithFunctions) => {
return arrayWithFunction.map((func) => func())
}
但是他们对练习的回答是这样的:
const chainAsync = fns => {
let curr = 0;
const next = () => fns[curr++](next);
next();
};
我不太了解
答案如下:
chainAsync([
next => {
console.log('0 seconds');
setTimeout(next, 1000);
},
next => {
console.log('1 second');
}
]);
什么是“下一个=> {}” 如果它将是箭头函数,则即使没有参数,它也应如下所示=()=> {// code //}
答案 0 :(得分:1)
只有一个参数时,lambda函数的参数周围的括号是可选的。因此,a => {}
和(a) => {}
是等效的。当使用lambda时,必须加上括号:
() => { /* code */ }
(a, b) => { /* code */ }
var exampleFunc = ({a, b}) => console.log(`A = ${a}, B = ${b}`)
exampleFunc({a: 1, b: 2})
这将打印:A = 1, B = 2
答案 1 :(得分:0)
在箭头功能中,有一些语法技巧可以使其变得更整洁。
例如
如果函数中只有一个参数,则无法括住括号。
const foo = param => {return param}
在您提到的示例中,如果返回行是一行,则可以通过键入单行函数而不必键入返回关键字来使代码更简洁。
const foo = param => param
/*This is equivilant to the example above*/
要了解更多信息,请检查此 link