我在节点js代码库中看到了以下行。
_ => { return resolve(abc);}
任何人都可以给我一些暗示这个_的含义吗? 我知道=>是胖箭功能。这一行来自一个承诺的片段。
答案 0 :(得分:3)
这意味着不使用箭头函数参数。他们使用EmailComponent.ts
作为箭头函数的参数名称。
答案 1 :(得分:1)
这不是这个意思吗?
function(_){
return resolve(abc);
}
答案 2 :(得分:1)
这里发生的是代码使用(某些)箭头函数的简洁语法。要做到这一点,你要写一个这样的函数:
var f = x => x*x;
根据the docs
因此,在您的示例中,参数x以_(变量名称的有效字符)命名:
var f = _ => {return resolve(abc)}
但是,它也不需要返回或括号。它可能只是:
_ => resolve(abc);
写一个更可读的方式也许就是这个:[/ p>
() => resolve(abc);
答案 3 :(得分:1)
在这个问题的其他地方进行讨论时,我会将我的意见转化为答案。
首先,我假设您一般不会询问箭头函数,但只是对代码示例中的_
感到好奇。
有一个约定(由某些人使用)来声明和命名一个你知道传递的回调函数的参数,但你不会使用下划线作为一种占位符。对于阅读代码的人来说,这是一个信号,表明有一个参数被传递给这个回调,但你不打算在这个特定的调用中使用它。它的存在不起作用,但更多的是
现在,在不知道编写您所询问的代码行的开发人员的头脑中,我们无法确切知道下划线的含义,但它确实看起来与之前描述的约定相符。回调有一个参数,它不用于回调的实现。
因此,如果我们猜测这是使用该约定是正确的,那么在您显示的箭头函数中:
_ => { return resolve(abc);}
可能期待一个参数,但是这个回调的特殊用法并没有计划使用它,因此他们用_
命名它只是为了发出信号。
现在,Javascript中没有特别的原因,回调甚至需要定义一个像这样使用的参数。回调也可以定义为:
() => { return resolve(abc);}
因为Javascript中没有要求您声明您不会使用的参数。
如果回调有两个参数并且它是你不会使用的第一个参数,那么它必须被声明为允许访问第二个参数的东西:
(_, secondArg) => { return resolve(secondArg);}