代码之家  ›  专栏  ›  技术社区  ›  Harsh

Angular.noop用于什么?

  •  86
  • Harsh  · 技术社区  · 12 年前

    我试着到处找,甚至在 Angular.org 文档,但找不到有关实现的任何详细解释。如果有人能解释这一点,那将是非常有帮助的。

    7 回复  |  直到 12 年前
        1
  •  151
  •   tomaoq    12 年前

    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);
    
        2
  •  27
  •   Muhammad Reda    11 年前

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

    例子:

    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);
    }
    
        3
  •  16
  •   Rahul Tripathi    12 年前

    它是一个不执行任何操作的函数。这在以下情况下很有用:

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

    它在以函数样式编写代码时非常有用

        4
  •  5
  •   joseph oun    8 年前

    *这个答案假设你不是角度的初学者

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

    例如:

    假设您正在使用q.all,它对api进行多次调用并返回一个承诺。 如果其中一些调用失败,但您仍需要处理未失败的调用,请在捕获调用时使用angular noop作为api调用的回调。 如果你不使用有角度的noop,如果一次呼叫失败,q.all将拒绝任何事情。

    Q.all(somecall.catch(angular.noop),another call).然后(解析结果[0]和结果[1])

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

    我希望我能帮上忙

        5
  •  4
  •   Jonas Sciangula Street    10 年前
    var result = (callback || angular.noop)(params)
    

    这是最短的路

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

    考虑到回调变量将是一个函数

        6
  •  2
  •   Nafeez Abrar bluekeys    11 年前

    如果你想要官方文件,这里是 link 。很简单。我还从链接粘贴了当前文档。


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

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

        7
  •  0
  •   Jeffrey Roosendaal SReddy    8 年前

    技巧:您也可以使用它向 ng-click 属性:

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

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