js里面有没有类似C++中的宏定义
发布于 7 年前 作者 heqs 8011 次浏览 来自 问答

场景是这样的,因为使用了jshint,在回调函数中的每个回调参数并没有被使用,会不符合jshint的规范

doSomething(params, function(err, res){
            if(!!err) {
                console.error('error!');
                cb(err);
            }else{
			    console.log("success");
            }
        });

由于回调函数中的res参数并未在函数体内使用,因此不符合jshint标准,当然可以定义一个空函数去调用res,然而函数本身是消耗性能的,有没有类似c++中的宏定义只是能让jshint通过,然而在执行的时候却什么也没做,或者有什么方法让这行代码中只是有res,然而并没有执行,因此不会有额外的开销

7 回复

callback形参不要传res不就可以了

@nullcc doSomeThing在很多地方都有被调用,这个例子是调用doSomething而非定义,所以如果去掉的话,doSomething函数定义的地方有callback(err,res),少了一个参数就出错了

doSomething(params, function (err, res) {
    if (!!err) {
        console.error('error!');
        cb(err);
    } else {
        res
        console.log("success");
    }
});

这样可以吗?

doSomething(params, function (err) {
    if (!!err) {
        console.error('error!');
        cb(err);
    } else {
        console.log("success");
    }
});

谢谢大家,jhshint里有一个unUsed:‘vars’ https://github.com/jshint/jshint/pull/867

回调里不写res参数与"doSomething函数定义的地方有callback(err,res)"不冲突啊

回到顶部