这个下划线在节点js中意味着什么

我在节点js代码库中看到了下面这行。

_ => { return resolve(abc);} 

任何人都可以给我一些暗示,这是什么意思? 我知道=>是胖箭头function。 这条线是从一个承诺的片段。

这意味着不使用箭头函数参数。 他们使用_作为箭头函数的参数名称。

这不是这个意思吗?

 function(_){ return resolve(abc); } 

这里发生的事情是,代码使用(一些)简洁的箭头函数语法。 要做到这一点,你会写这样的function:

 var f = x => x*x; 

根据文档

所以在你的例子中,参数x用一个_(一个有效的variables名字符)来命名:

 var f = _ => {return resolve(abc)} 

但是,它不需要返回或括号。 这可能只是:

 _ => resolve(abc); 

也许一个更可读的方式来写它将是与parathesis:

 () => resolve(abc); 

在这个问题的别处讨论的诱惑下,我会把我的意见变成一个答案。

首先,我假设你一般不会询问箭头函数,但只是对代码示例中的_有好奇。

有一个约定(由一些使用)来声明和命名一个参数给一个你知道被传递的callback函数,但是你不会将下划线用作一种占位符。 这是人们阅读代码的信号,有一个parameter passing给这个callback函数,但是你不打算在这个特定的调用中使用它。 它的存在不是function性的,而是更多的

现在,在不知道开发者的头脑中写了什么问题,我们无法确定下划线是什么意思,但看起来似乎与之前描述的惯例相匹配。 callback只有一个参数,并不用于callback的实现。

所以,如果我们猜测这是一个惯例的使用是正确的,那么在你显示的箭头函数中:

 _ => { return resolve(abc);} 

它可能期待一个参数,但是这个callback函数的这个特殊用法并不打算使用它,所以他们用_来命名它来表示这个。


现在,在Javascript中没有什么特别的原因,callback需要甚至定义一个像这样使用的单个参数。 callback可以被定义为:

 () => { return resolve(abc);} 

因为在Javascript中没有要求你声明你不打算使用的参数。

如果callback函数有两个参数,而且这是第一个你不打算使用的参数,那么为了允许访问第二个参数,它必须声明为某些东西:

 (_, secondArg) => { return resolve(secondArg);}