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