From e9c69b3c40eaf7434af3446d10ced7a87dfc858c Mon Sep 17 00:00:00 2001 From: Valeri Karpov Date: Sat, 9 Nov 2019 14:40:48 -0500 Subject: [PATCH] perf(cursor): remove unnecessary `setTimeout()` in `eachAsync()`, 4x speedup in basic benchmarks Fix #8310 --- lib/helpers/cursor/eachAsync.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/helpers/cursor/eachAsync.js b/lib/helpers/cursor/eachAsync.js index 472dbeee187..95a38dbf93a 100644 --- a/lib/helpers/cursor/eachAsync.js +++ b/lib/helpers/cursor/eachAsync.js @@ -99,13 +99,11 @@ function asyncQueue() { }; function _step() { - setTimeout(() => { - inProgress = null; - if (_queue.length > 0) { - inProgress = id++; - const fn = _queue.shift(); - fn(_step); - } - }, 0); + inProgress = null; + if (_queue.length > 0) { + inProgress = id++; + const fn = _queue.shift(); + fn(_step); + } } } \ No newline at end of file