Я попытался найти его везде даже в Angular.org, но не смог найти подробного объяснения при реализации. Было бы очень полезно, если бы кто-нибудь мог это объяснить.
Для чего используется Angular.noop?
Ответ 1
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
Я считаю это чрезвычайно полезным при написании функции, которая ожидает обратного вызова.
Пример:
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
Это функция, которая не выполняет никаких операций. Это полезно в такой ситуации:
function foo(y) {
var x= fn();
(y|| angular.noop)(x);
}
Это полезно при написании кода в функциональном стиле
Ответ 4
* этот ответ предполагает, что u не является новичком в angular
Наилучшее использование, которое я нашел для angular.noop(который сказал, что это пустая функция), таков: Представьте, что вы используете q.all, которые выполняют несколько вызовов в api и возвращают одно обещание. Если некоторые из этих вызовов терпят неудачу, но все еще нужно обрабатывать те, которые не сработали, используйте angular noop в качестве обратного вызова на вызовы api, когда вы улавливаете вызовы. Если вы не используете angular noop, q.all отклонит все, если один вызов завершится с ошибкой.
Q.all(somecall.catch(angular.noop), anothercall). then (результат решения [0] и результат [1 [)
Если somecall терпит неудачу.. angular проигнорирует это и выполнит другой вызов (но u все равно получит undefined для первого разрешенного результата)
Надеюсь, я помог
Ответ 5
var result = (callback || angular.noop)(params)
Его самый короткий способ сделать
var result = typeof callback === 'function' && callback(params);
Принимая во внимание, что callback var будет функцией
Ответ 6
Если вы хотите, чтобы официальная документация была здесь ссылка. Это довольно просто. Я также вставил текущую документацию из ссылки.
Функция, которая не выполняет никаких операций. Эта функция может быть полезна при написании кода в функциональном стиле.
function foo(callback) {
var result = calculateResult();
(callback || angular.noop)(result);
}
Ответ 7
Trick: вы также можете использовать его, чтобы добавить тернар к атрибуту ng-click
:
ng-click="(variable) ? doSomething() : angular.noop()"
До тех пор, пока я не узнаю, вы можете использовать ng-click = "variable && doSomething()"