2017-03-07 3 views
1

Für Javascript, gibt es eine eslint (oder sogar jslint) Einstellung, um eine Warnung für eine gegebene Länge (zB länger als 5 Zeilen) von anonymen/Lambda-Funktionen, vor allem Rückrufe?Javascript lambda/anonyme Funktion Länge Warnung in eslint oder jslint

Ich versuche, es zu sehen, ob ein Weg ist sauberen Code als diese mit Flusen zu erzwingen:

... 
    var a = foo(b, function(c, cb1) { 
    // dozens of lines of code 
    cb1(d, function(e, cb2){ 
     // dozens of lines of code 
     cb2(f, function(g, cb3) { 
     // dozens of lines of code 
     cb3(...); 
     // dozens of lines of code 
     }); 
    }); 
    }); 
    ... 

weiß ich, dass die Anzahl der verschachtelten Funktionen beschränkt werden kann, aber ich denke, die Länge Diese könnten auch so kurz wie möglich sein.

+2

Die [max-depth] (http://eslint.org/docs/rules/max-depth) oder [max-nested-callbacks] (http://eslint.org/docs/rules/max-nested -Rückrufe) können hilfreich sein. –

+0

Wie ich bereits erwähnte, bin ich mir dessen bewusst und benutze sie; Ich suche nach etwas, das auch die Länge begrenzt, da es unlesbar/unverfugbar werden kann mit nur 3 tiefen Verschachtelung ... – Gyuri

Antwort

1

Sie können die Option eslint max-statements verwenden, um eine bestimmte Anzahl von Anweisungen pro Funktion zu erzwingen.

Die von Jordan erwähnten Max-Tiefe- und Max-Nested-Callbacks sind nützlich, um Verschachtelungsbedingungen und Rückrufe zu tief zu verhindern. Sie könnten auch daran interessiert sein, complexity zu begrenzen, was bedeutet, wie viele verschiedene Ergebnisse eine Funktion haben kann.

+0

Ich denke, es gibt nichts zu begrenzen "Linien", aber mit Max-Anweisungen macht mehr Sinn als Linien sowieso; das zusammen mit den anderen erwähnten Optionen sollte genug sein. – Gyuri

Verwandte Themen