javascript - 如何计算传递的回调函数中的参数个数?
问题描述
使用 3rd 方库时,我经常在回调中找到一个可选参数。
例如,在 Mocha 中,当回调done
参数存在时,它会等待done
被调用,然后再转到另一个测试用例。
someFunction(function(done) { /** code **/ })
someFunction(function() { /** this behaves differently than above **/ })
我怎样才能实现相同的行为?
解决方案
可以查看length
函数对象的属性
console.log((()=>42).length); // 0
console.log(((x,y)=>42).length); // 2
但是请注意,您无法确定该函数将访问多少个函数,因为也可以arguments
在 Javascript 非箭头内部使用和箭头内部function
的“rest”参数(不计入.length
属性)。
推荐阅读
- haskell - 在 Windows 上找不到模块“Test.QuickCheck”
- r - 闪亮的内存泄漏R
- sql - ORA-01779 cannot modify a column which maps to a non key-preserved table
- php - 如何从文本中分离出特定的字符串(url 和后面的 10 个字符)并使用 PHP 将它们添加到数组中?
- python - 在 Lat Lang 中心 1000 英尺半径范围内获取 Lat & Lang
- google-slides-api - 使用基于过期的 API 从 Google 演示文稿中删除一张幻灯片
- javascript - 使用 Cheerio.js 抓取 IMDb 剧集 - 仅返回电视剧集的第一页
- php - PHP:加载另一个 php 文件源并替换字符串“ ”的所有实例
- python - 在 mpi (mpi4py) 中创建组通信器
- asterisk - How should I update FreePBX version 2.0.X to 14?