1

我想这样称呼:

function fwc(a, b, callback) {

dosomestuff(a,b);
callback();
}

有了这个:

fwc (a,b);

有时我需要回调,有时我不需要。当我调用函数并完全忽略回调时,这会导致麻烦吗?

4

4 回答 4

5

如果你不能改变fwc函数,你可以这样调用它:

fwc(a, b, function(){});

fwc这样在尝试调用第三个参数时不会出错。

如果可以更改,请更改为

function fwc(a, b, callback) {
    dosomestuff(a,b);
    if (callback) callback();
}
于 2013-03-24T21:06:37.177 回答
4

您应该像这样检查回调的类型:

function fwc(a, b, callback) {
 dosomestuff(a,b);
 if( typeof( callback ) == "function" ){
  callback();
 }
}
于 2013-03-24T21:07:24.233 回答
1

或者像这样:

function fwc(a, b, callback) {
    dosomestuff(a,b);
    callback && callback();
}

您还可以检查callback类型以确保它是一个函数。如果是这样,请检查 Travis 的一般答案。

于 2013-03-24T21:09:08.070 回答
1

使用三元运算符做一个简单的检查,看看函数是否存在。

function fwc(a, b, callback) {
    dosomestuff(a,b);
   (callback) ? callback():"";
}
于 2013-03-24T21:07:14.433 回答