Ich habe versucht, es überall zu durchsuchen, sogar in der Angular.org- Dokumentation, konnte aber bei der Implementierung keine detaillierte Erklärung finden. Es wäre sehr hilfreich, wenn jemand es erklären könnte.
Ich habe versucht, es überall zu durchsuchen, sogar in der Angular.org- Dokumentation, konnte aber bei der Implementierung keine detaillierte Erklärung finden. Es wäre sehr hilfreich, wenn jemand es erklären könnte.
Antworten:
angle.noop ist eine leere Funktion, die als Platzhalter verwendet werden kann, wenn Sie eine Funktion als Parameter übergeben müssen.
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
anstatt nur die Funktion leer zu lassen? Ästhetik, Leistung oder etwas anderes?
angular.noop
da Sie immer dieselbe leere Funktion wiederverwenden (anstatt jedes Mal eine neue anonyme Funktion zu deklarieren). In Bezug auf die Leistung macht es keinen Unterschied, da der Code für angular.noop
nur eine leere Funktion mit dem Namen ist noop
.
Ich finde es äußerst hilfreich, wenn ich eine Funktion schreibe, die einen Rückruf erwartet.
Beispiel:
function myFunction(id, value, callback) {
// some logic
return callback(someData);
}
Die obige Funktion gibt einen Fehler zurück, wenn sie aufgerufen wird, ohne das dritte Argument anzugeben. myFunction(1, 'a');
Beispiel (mit 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();
. Viel edler ^^. Nicht verwenden angular.noop
.
Es ist eine Funktion, die keine Operationen ausführt. Dies ist in folgenden Situationen nützlich:
function foo(y) {
var x= fn();
(y|| angular.noop)(x);
}
Dies ist nützlich, wenn Sie Code im funktionalen Stil schreiben
//do nothing on the success callback, hence replacing the success callbck function with angular.noop()
Möglicherweise hilft dieses Beispiel: - $ scope.contacts = Contacts.query (angle.noop, Funktion (Antwort) {Window.myresp = Antwort; $ scope.displayError (Antwort); console.log ("böser Junge, listContacts fehlgeschlagen ");});
* Diese Antwort setzt voraus, dass Sie kein Anfänger im Winkel sind
Angular.noop ist eine leere Funktion, die in einigen Fällen als Platzhalter verwendet werden kann
beispielsweise:
Stellen Sie sich vor, Sie verwenden q.all, die mehrere Anrufe an die API tätigen und ein Versprechen zurückgeben. Wenn einige dieser Anrufe fehlschlagen, Sie aber immer noch diejenigen behandeln müssen, die nicht fehlgeschlagen sind, verwenden Sie Angular Noop als Rückruf für die API-Anrufe, wenn Sie die Anrufe abfangen. Wenn Sie kein eckiges Noop verwenden, lehnt q.all alles ab, wenn ein Anruf fehlschlägt.
Q.all (somecall.catch (angle.noop), anothercall) .then (Ergebnis [0] und Ergebnis [1] auflösen)
Wenn ein Anruf fehlschlägt, ignoriert Angular dies und führt einen weiteren Anruf durch (aber Sie werden für das erste aufgelöste Ergebnis immer noch undefiniert sein).
Ich hoffe, dass ich geholfen habe
var result = (callback || angular.noop)(params)
Es ist der kürzeste Weg
var result = typeof callback === 'function' && callback(params);
Unter Berücksichtigung, dass Rückruf var eine Funktion sein wird
Wenn Sie offizielle Dokumentation wünschen, ist hier der Link . Es ist ziemlich einfach. Ich habe auch die aktuelle Dokumentation von Link eingefügt.
Eine Funktion, die keine Operationen ausführt. Diese Funktion kann nützlich sein, wenn Sie Code im Funktionsstil schreiben.
function foo(callback) {
var result = calculateResult();
(callback || angular.noop)(result);
}
Trick: Sie können es auch verwenden, um einem ng-click
Attribut einen Ternär hinzuzufügen :
ng-click="(variable) ? doSomething() : angular.noop()"
Bis ich herausgefunden habe, dass Sie ng-click = "variable && doSomething ()" `verwenden können
ng-click="(variable) ? doSomething() : true"
würde auch funktionieren