我有一个带有选项对象和回调的aysnc函数
function myFunc(options,callback) {
// do stuff
callback(null);
}
作为我的防守型人,我想检查参数中的任何潜在问题
所以我做的第一件事就是为options.name添加一个测试(因为我需要那个属性)
function myFunc(options,callback) {
if (!options.name) { callback(new Error("name must be specified")) }
// do stuff
callback(null);
}
但是 - 这导致了一系列的想法..如果
我想检查一下我的想法 -
选项未定义。没有选项也没有回调 - > 抛出新错误
定义了选项,回调不是
所以,那是很多检查......人们真的做了这一切吗?确保参数存在且正确的最佳做法是什么?
答案 0 :(得分:1)
由于这个问题具有个人感,所以这是我的:
回调的目的是提供异步操作的结果。因此,它只需要异步调用。如果有任何事情阻止您的代码完成其任务,并且您可以同步识别它,则返回错误值(如果已定义或抛出)。
如果异步操作失败,请使用回调通知。
旁注 options
可以是undefined
,callback
可以同时是有效的功能。不要以其他方式假设。
答案 1 :(得分:-1)
var func = function(p){
if (p == null){
alert('passed null');
}
if (typeof p === 'undefined'){
alert('not passed at all')
}
您可以在此处查看:https://jsfiddle.net/1s1nqdc7/