我曾尝试在所有地方搜索它,甚至在Angular.org文档中也找不到,但是在实现中找不到任何详细的解释。如果有什么可以解释的话,那将是非常有帮助的。
我曾尝试在所有地方搜索它,甚至在Angular.org文档中也找不到,但是在实现中找不到任何详细的解释。如果有什么可以解释的话,那将是非常有帮助的。
Answers:
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);
noop
而不是将函数保留为空白有什么好处?美学,表演还是其他?
angular.noop
因为您始终重复使用同一空函数(而不是每次都声明一个新的匿名函数)。在性能方面,这没有什么区别,因为的代码angular.noop
只是一个名为的空函数noop
。
在编写需要回调的函数时,我发现它非常有用。
例:
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);
}
typeof callback === 'function' && callback();
。方式更优雅^^。angular.noop
虽然没有使用。
它是不执行任何操作的功能。在以下情况下这很有用:
function foo(y) {
var x= fn();
(y|| angular.noop)(x);
}
以功能样式编写代码时非常有用
//do nothing on the success callback, hence replacing the success callbck function with angular.noop()
$ scope.contacts = Contacts.query(angular.noop,function(response){Window.myresp = response; $ scope.displayError(response); console.log(“坏男孩,listContacts失败“);});
*此答案假设您不是初学者
Angular.noop是一个空函数,在某些情况下可以用作占位符
例如:
假设您正在使用q.all,它将对api进行多次调用并返回一个promise。如果其中一些调用失败,但是您仍然需要处理那些未失败的调用,则当您捕获到调用时,请使用angular noop作为api调用的回调。如果您不使用角度锁定,则q.all将在呼叫失败的情况下拒绝所有呼叫。
Q.all(somecall.catch(angular.noop),anothercall).then(解析result [0]和result [1])
如果调用失败,Angular将忽略该调用并执行另一个调用(但是对于第一个已解决的结果,u仍将是未定义的)
我希望我能帮助
var result = (callback || angular.noop)(params)
这是最短的方法
var result = typeof callback === 'function' && callback(params);
考虑到回调var将是一个函数
技巧:您还可以使用它向ng-click
属性添加三元数:
ng-click="(variable) ? doSomething() : angular.noop()"
直到我发现您可以使用ng-click =“ variable && doSomething()”`
ng-click="(variable) ? doSomething() : true"
也会起作用