验证参数并返回函数中的错误是很常见的.
但是,在JavaScript回调函数中,例如:
function myFunction(num, callback) {
if (typeof num !== 'number') return callback(new Error('invalid num'))
// do something else asynchronously and callback(null, result)
}
Run Code Online (Sandbox Code Playgroud)
我写了很多像这样的函数,但我想知道是否存在可能有害的东西.因为在大多数情况下,调用者假定这是一个异步函数,并且回调将在函数调用之后的代码之后执行.但是如果某些参数无效,该函数将立即调用回调.因此调用者必须小心处理这种情况,即一个意外的执行序列.
我想听听有关这个问题的一些建议.我应该仔细假设所有异步回调都可以立即执行吗?或者我应该使用类似setTimeout(...,0)的东西将同步事物转换为异步事物.或者有一个我不知道的更好的解决方案.谢谢.
有什么方法可以检查 JavaScript 绑定函数吗?
我想从函数返回绑定函数,并在单元测试中断言绑定函数的目标、boundThis 和boundArgs。它们似乎在 ECMAScript 中被定义为内部对象,无法在程序中访问。
有什么办法可以访问它们吗?或者也许有些有类似需求的人已经编写了一些模块修补 Function.prototype.bind() ?