如何让程序员在javascript中实现正确的回调
How to make a programmer implement the right callback in javascript?
我想知道是否可以向库用户显示函数需要一个回调,比如说有5个参数,其中3个是数组(例如)。或者换句话说,如何通知程序员不要搞砸回调参数?下面是一个代码示例:
function doSomething(someArray, callback) {
var i = 0;
for ( i = 0; i < someArray.length; i += 1) {
callback(someArray[i]);
}
}
程序员将如何发现他们的回调函数应该接受哪些参数?
Javascript没有参数的类型检查,您也无法对回调进行运行时检查,以查看它期望的参数。在运行时可以做的一件事是,您可以检查callback.length
,看看它声明了多少个参数,它期望这些参数作为形式参数。函数不需要定义其形式参数,因为它也可以使用arguments对象来获取参数,但如果您想强制它们以某种方式编程,可以通过这种方式进行检查。请参阅此文档了解更多信息。
最好的选择是编写好的文档,让它绝对清楚(通常也使用示例代码)应该如何编写回调。
如果你想让你的库防弹一点,你可以捕捉回调中抛出的任何异常,并以适当的方式处理它们。
function doSomething(someArray, callback) {
var i = 0;
for ( i = 0; i < someArray.length; i += 1) {
try {
callback(someArray[i]);
} catch(e) {
// handle any exception in the callback
}
}
}
通过对其进行文档化。通常,文档化的约定与通过语言强制执行的合同一样有效。最多可以将单个对象传递给回调,并且该对象可以具有命名属性,例如
callback({'names':[], 'types':[], value:0, etc:[] })
这样一来,双方的代码都更容易得到良好的文档记录。
相关文章:
- 如何让程序员在javascript中实现正确的回调
- 在 Javascript 中实现解耦代码/回调的正确方法是什么?
- 如何在node.js中用读取流正确实现回调逻辑
- 如何在Node.js上使用twitter api实现回调函数
- 如何实现可重用的回调函数
- 在节点.js代码中实现回调的问题
- Node.js在返回数据之前返回null的函数/实现回调
- 为动态加载的javascript文件实现“错误”回调
- 回调/承诺在快递.js中实现
- Jquery为我的插件实现了一个成功和错误回调,该插件与AJAX一起工作
- 如何正确实现javascript回调
- 当对象属性发生更改时实现回调的Javascript
- 在函数内部实现回调函数
- 实现回调函数的自定义解决方案
- 在这种情况下如何实现回调函数
- 多个地址的Google反向地理编码:在循环中实现回调函数的问题
- javascript是如何实现回调的
- 用JS/jQuery编程实现回调
- Restangular 运行在承诺上实现回调,即使承诺被拒绝
- 如何在向NaCl (Chrome Native Client)发送消息后实现回调