Я пробовал искать его везде, даже в документации Angular.org, но не смог найти подробного объяснения реализации. Было бы очень полезно, если бы кто-нибудь мог это объяснить.
Я пробовал искать его везде, даже в документации Angular.org, но не смог найти подробного объяснения реализации. Было бы очень полезно, если бы кто-нибудь мог это объяснить.
Ответы:
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"
тоже будет работать