From 92d47b7605c24526cc1377c2c2742967fba84826 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Sun, 20 Oct 2019 23:29:56 -0700 Subject: [PATCH] fix: avoid unnecessary zero-delays in input code (#4934) --- lib/Input.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/Input.js b/lib/Input.js index 5911afe3a0208..e7d36a8d89e64 100644 --- a/lib/Input.js +++ b/lib/Input.js @@ -156,16 +156,15 @@ class Keyboard { * @param {{delay: (number|undefined)}=} options */ async type(text, options) { - let delay = 0; - if (options && options.delay) - delay = options.delay; + const delay = (options && options.delay) || null; for (const char of text) { - if (keyDefinitions[char]) + if (keyDefinitions[char]) { await this.press(char, {delay}); - else + } else { + if (delay) + await new Promise(f => setTimeout(f, delay)); await this.sendCharacter(char); - if (delay) - await new Promise(f => setTimeout(f, delay)); + } } } @@ -176,7 +175,7 @@ class Keyboard { async press(key, options = {}) { const {delay = null} = options; await this.down(key, options); - if (delay !== null) + if (delay) await new Promise(f => setTimeout(f, options.delay)); await this.up(key); }