Die Lodash Dokumentation sagt, dass es supports lazy evaluation. Aus meinen Tests wird die untere Kette 100 mal ausgewertet anstatt 10. Ich benutze Version 3.10.1.Lazy Evaluation funktioniert nicht in Lodash
_(_.range(100))
.map(function(x) {console.log(1); return x; })
.take(10)
.value()
Sie können sehen, dass wir auf der Konsole 100-mal innerhalb map
, anstatt die 10-mal gedruckt ich erwartet hätte. Überprüfen Sie das Problem hier: https://jsfiddle.net/07utwk6y/
Was mache ich falsch? Wie kann ich dies träge bewerten lassen?
Update: Dies scheint eine Regression in Lodash zu sein. Getestet habe ich, wie diese über Versionen funktioniert und kam über die folgenden Ergebnisse:
Version 2.4.2: 100 mal https://jsfiddle.net/4Lq7z5xL/
Version 3.0.0: 10 mal https://jsfiddle.net/fd6g6un5/
Version 3.9.0 10 mal https://jsfiddle.net/ju8rppee/
Version 3.10.0: 100 mal https://jsfiddle.net/x1g13oo8/
Sieht aus wie das Limit wurde entfernt: https://github.com/lodash/lodash/commit/9d3047001d38a03f84c9afb86b5272d8c9533e5e –