Angular.noop用于什么?

时间:2014-03-12 10:15:47

标签: javascript angularjs

即使在Angular.org文档中,我也尝试过在任何地方进行搜索,但无法通过实现找到任何详细解释。如果任何人能够解释它将会非常有用。

7 个答案:

答案 0 :(得分:143)

angular.noop是一个空函数,当您需要将某个函数作为参数传递时,可以将其用作占位符。

function foo (callback) {
    // Do a lot of complex things

    callback();
}

// Those two have the same effect, but the later is more elegant
foo(function() {});
foo(angular.noop);

答案 1 :(得分:28)

在编写需要回调的函数时,我发现它非常有用。

示例:

function myFunction(id, value, callback) {

    // some logic
    return callback(someData);
}

当调用它而不指定第三个参数时,上面的函数将返回错误。 myFunction(1, 'a');

示例(使用angular.noop):

function myFunction(id, value, callback) {

    var cb = callback || angular.noop; // if no `callback` provided, don't break :)
    // some logic
    return cb(someData);
}

答案 2 :(得分:16)

这是一项不执行任何操作的功能。这在以下情况下很有用:

function foo(y) {
   var x= fn();
   (y|| angular.noop)(x);
 }

在以函数式

编写代码时很有用

答案 3 :(得分:5)

*这个答案假设你不是角度

的初学者

Angular.noop是一个空函数,在某些情况下可以用作占位符

例如:

想象一下,你正在使用q.all,它会对api进行多次调用并返回一个promise。 如果其中一些调用失败但你仍然需要处理那些没有失败的调用,那么当你接到调用时,使用angular noop作为对api调用的回调。 如果你不使用角度noop,如果一次呼叫失败,q.all将拒绝覆盖。

Q.all(somecall.catch(angular.noop),anothercall).then(解析结果[0]和结果[1])

如果调用失败,Angular将忽略该调用并执行另一个调用(但是对于第一个已解析的结果,您仍将未定义)

我希望我帮助

答案 4 :(得分:4)

var result = (callback || angular.noop)(params)

这是最简短的方法

var result = typeof callback === 'function' && callback(params);

考虑到callback var将是一个函数

答案 5 :(得分:2)

如果您需要官方文档,请link。这很简单。我还粘贴了链接中的当前文档。


不执行任何操作的功能。在以函数式编写代码时,此函数非常有用。

function foo(callback) {
  var result = calculateResult();
  (callback || angular.noop)(result);
}

答案 6 :(得分:0)

技巧:您还可以使用它为ng-click属性添加三元数:

ng-click="(variable) ? doSomething() : angular.noop()"

直到我发现你可以使用ng-click =“variable&& doSomething()”`