Я намагався шукати його скрізь, навіть у документації 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 ");});
* ця відповідь передбачає, що u ви не новачок у кутових
Angular.noop - це порожня функція, яку в деяких випадках можна використовувати як заповнювач
наприклад:
Уявіть, що ви використовуєте q.all, який робить кілька дзвінків на API і повертає одну обіцянку. Якщо деякі з цих викликів не вдаються, але вам все одно потрібно обробляти ті, які не провалились, використовуйте angular noop як зворотний виклик до дзвінків api, коли ви ловите дзвінки. Якщо ви не використовуєте кутовий noop, q.all відхилить все, якщо один виклик не вдається.
Q.all (somecall.catch (angular.noop), anothercall). Then (вирішити результат [0] і результат [1])
Якщо виклик не вдається, Angular проігнорує це та виконає інший виклик (але для першого розв'язаного результату ви все ще не визначені)
Сподіваюся, що я допоміг
var result = (callback || angular.noop)(params)
Це найкоротший спосіб зробити
var result = typeof callback === 'function' && callback(params);
Беручи до уваги, що зворотний виклик 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"також спрацює