CNode

js里面有没有类似C++中的宏定义

问答
Hheqs发布于9 年前最后回复9 年前7 回复9274 浏览0 收藏

场景是这样的,因为使用了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)

N
nullcc#1·9 年前

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

H
heqs#2·9 年前
引用 nullcccallback形参不要传res不就可以了

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

W
wbget#3·9 年前
doSomething(params, function (err, res) {
    if (!!err) {
        console.error('error!');
        cb(err);
    } else {
        res
        console.log("success");
    }
});

这样可以吗?

L
Lizhooh#4·9 年前
res = res;
Y
yinxin630#5·9 年前

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

1
151263#6·9 年前
doSomething(params, function (err) {
    if (!!err) {
        console.error('error!');
        cb(err);
    } else {
        console.log("success");
    }
});
H
heqs#7·9 年前

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

参与回复
登录后即可参与回复。登录