Подтвердить что ты не робот

Для чего используется Angular.noop?

Я попытался найти его везде даже в Angular.org, но не смог найти подробного объяснения при реализации. Было бы очень полезно, если бы кто-нибудь мог это объяснить.

4b9b3361

Ответ 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()"