Angular.org belgelerinde bile her yerde aramayı denedim, ancak uygulama ile ilgili ayrıntılı bir açıklama bulamadım. Herhangi biri bunu açıklayabilirse çok yardımcı olur.
Angular.org belgelerinde bile her yerde aramayı denedim, ancak uygulama ile ilgili ayrıntılı bir açıklama bulamadım. Herhangi biri bunu açıklayabilirse çok yardımcı olur.
Yanıtlar:
angular.noop, bazı işlevleri bir param olarak geçirmeniz gerektiğinde yer tutucu olarak kullanılabilen boş bir işlevdir.
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
İşlevi boş bırakmaktansa aramanın faydası nedir ? Estetik, performans veya başka bir şey?
angular.noop
Aynı boş işlevi her zaman yeniden kullandığınız için (her seferinde yeni bir anonim işlev bildirmek yerine) kullanmak daha estetik ve iyi bir uygulamadır . Performans açısından hiçbir fark yaratmaz, çünkü kodu angular.noop
sadece adlandırılmış boş bir işlevdir noop
.
Geri arama bekleyen bir işlev yazarken bunu son derece yararlı buluyorum.
Misal:
function myFunction(id, value, callback) {
// some logic
return callback(someData);
}
Yukarıdaki işlev, üçüncü bağımsız değişkeni belirtmeden çağrıldığında bir hata döndürür. myFunction(1, 'a');
Örnek (kullanarak 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();
. Çok daha şık ^^. angular.noop
Yine de kullanmıyorum .
Hiçbir işlem yapmayan bir işlevdir. Bu, aşağıdaki gibi durumlarda kullanışlıdır:
function foo(y) {
var x= fn();
(y|| angular.noop)(x);
}
İşlevsel tarzda kod yazarken kullanışlıdır
//do nothing on the success callback, hence replacing the success callbck function with angular.noop()
$ kapsam.contacts = Kişiler.query (angular.noop, işlev (yanıt) {Window.myresp = response; $ kapsam.displayError (response); console.log ("kötü çocuk, listContacts başarısız ");});
* bu cevap, sizin açısal olarak başlangıç yapmadığınızı varsayar
Angular.noop, bazı durumlarda yer tutucu olarak kullanılabilen boş bir işlevdir
Örneğin:
API'ye birden çok çağrı yapan ve bir söz veren q.all kullandığınızı hayal edin. Bu aramalardan bazıları başarısız olursa, ancak yine de başarısız olmayanları halletmeniz gerekiyorsa, aramaları yakaladığınızda api aramalarına geri arama olarak açısal noop kullanın. Açısal noop kullanmazsanız, q.all bir arama başarısız olursa her şeyi reddeder.
Q.all (somecall.catch (angular.noop), başka bir çağrı). Sonra (sonucu [0] ve sonucu [1] çözümleyin)
Bir arama başarısız olursa, Angular bunu yok sayar ve başka bir arama gerçekleştirir (ancak u yine de ilk çözümlenen sonuç için tanımsız olacaktır)
Umarım yardım etmişimdir
var result = (callback || angular.noop)(params)
Yapmanın en kısa yolu
var result = typeof callback === 'function' && callback(params);
Geri arama varlığının bir işlev olacağını dikkate alarak
Resmi belgeler istiyorsanız, bağlantı burada . Oldukça basit. Mevcut belgeleri de bağlantıdan yapıştırdım.
Hiçbir işlem yapmayan bir işlev. Bu işlev, işlevsel stilde kod yazarken yararlı olabilir.
function foo(callback) {
var result = calculateResult();
(callback || angular.noop)(result);
}
Püf noktası: Bir ng-click
özelliğe bir üçlü eklemek için de kullanabilirsiniz :
ng-click="(variable) ? doSomething() : angular.noop()"
Ng-click = "variable && doSomething ()" kullanabileceğinizi öğrenene kadar
ng-click="(variable) ? doSomething() : true"
aynı zamanda