J'ai essayé de le rechercher partout, même sur la documentation Angular.org , mais je n'ai trouvé aucune explication détaillée avec la mise en œuvre. Il serait extrêmement utile que quelqu'un puisse l'expliquer.
86
J'ai essayé de le rechercher partout, même sur la documentation Angular.org , mais je n'ai trouvé aucune explication détaillée avec la mise en œuvre. Il serait extrêmement utile que quelqu'un puisse l'expliquer.
Réponses:
angular.noop est une fonction vide qui peut être utilisée comme espace réservé lorsque vous devez passer une fonction en tant que paramètre.
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);
la source
noop
plutôt que de laisser la fonction vide? Esthétique, performance ou autre chose?angular.noop
car vous réutilisez toujours la même fonction vide (au lieu de déclarer une nouvelle fonction anonyme à chaque fois). En termes de performances, cela ne fait aucune différence car le codeangular.noop
n'est qu'une fonction vide nomméenoop
.Je trouve cela extrêmement utile lors de l'écriture d'une fonction qui attend un rappel.
Exemple:
function myFunction(id, value, callback) { // some logic return callback(someData); }
La fonction ci-dessus renverra une erreur lorsqu'elle sera appelée sans spécifier le troisième argument.
myFunction(1, 'a');
Exemple (en utilisant
angular.noop
):function myFunction(id, value, callback) { var cb = callback || angular.noop; // if no `callback` provided, don't break :) // some logic return cb(someData); }
la source
typeof callback === 'function' && callback();
. Beaucoup plus chic ^^. Ne pas utiliserangular.noop
cependant.C'est une fonction qui n'effectue aucune opération. Ceci est utile dans une situation comme celle-ci:
function foo(y) { var x= fn(); (y|| angular.noop)(x); }
C'est utile lors de l'écriture de code dans le style fonctionnel
la source
//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 ");});* cette réponse suppose que vous n'êtes pas un débutant en angulaire
Angular.noop est une fonction vide qui peut être utilisée comme espace réservé dans certains cas
par exemple:
Imaginez que vous utilisez q.all qui effectue plusieurs appels à l'API et renvoie une promesse. Si certains de ces appels échouent mais que vous devez toujours gérer ceux qui n'ont pas échoué, utilisez noop angulaire comme rappel des appels API lorsque vous interceptez les appels. Si vous n'utilisez pas de noop angulaire, q.all rejettera tout si un appel échoue.
Q.all (somecall.catch (angular.noop), anothercall) .then (résoudre le résultat [0] et le résultat [1])
Si un appel échoue, Angular l'ignorera et effectuera un autre appel (mais vous restera indéfini pour le premier résultat résolu)
J'espère que j'ai aidé
la source
var result = (callback || angular.noop)(params)
C'est le moyen le plus court de faire
var result = typeof callback === 'function' && callback(params);
Prendre en compte que le callback var sera une fonction
la source
Si vous voulez une documentation officielle, voici le lien . C'est assez simple. J'ai également collé la documentation actuelle à partir du lien.
Une fonction qui n'effectue aucune opération. Cette fonction peut être utile lors de l'écriture de code dans le style fonctionnel.
function foo(callback) { var result = calculateResult(); (callback || angular.noop)(result); }
la source
Astuce: vous pouvez également l'utiliser pour ajouter un ternaire à un
ng-click
attribut:ng-click="(variable) ? doSomething() : angular.noop()"
Jusqu'à ce que je sache que vous pouvez utiliser ng-click = "variable && doSomething ()" `
la source
ng-click="(variable) ? doSomething() : true"
fonctionnerait également