在 Node.js 中,出于多种原因,习惯/建议将回调作为最后一个参数传递给函数。也可能有一个或多个可选参数,我们希望在回调之前传递它们。您最终会看到很多非常重复的代码,例如
// receiveMessages([options], [callback])
function receiveMessages(options, callback) {
if(typeof options === 'function'){
callback = options;
options = {}; // or some other sensible default
}
//...
}
添加额外的可选参数意味着添加额外的检查,当然:
// through([dest], [options], [callback])
function through(dest, options, callback) {
if(typeof dest === 'function'){
callback = dest;
dest = noop();
options = {};
}else if(typeof options === 'function'){
callback = options;
options = {};
}
// ...
}
我可以想到一些干这件事的 hacky 方法,但我想知道是否有人有一个特别优雅或通用的解决方案来将参数绑定到正确的位置参数。