使用第三方库时,我经常在回调中找到一个可选参数。
例如,在Mocha中,当存在回调done
参数时,它会等待done
被调用,然后再转到另一个测试用例。
someFunction(function(done) { /** code **/ })
someFunction(function() { /** this behaves differently than above **/ })
如何实现相同的行为?
答案 0 :(得分:3)
您可以检查功能对象的length
属性
console.log((()=>42).length); // 0
console.log(((x,y)=>42).length); // 2
但是请注意,您不能确定该函数将要访问多少,因为还可以在Javascript非箭头arguments
中使用function
和箭头内的“ rest”参数(.length
属性中不计算在内)。