From f5bb9307b84402b322a0cd13ee74c2809dabb267 Mon Sep 17 00:00:00 2001 From: Ferdinand Prantl Date: Sat, 4 Nov 2017 22:06:05 +0100 Subject: [PATCH] fix: Use only the "data" event to catch the firstByte timing It is triggered before the "readable" event. Less code and more correct measurement. --- lib/nettime.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/nettime.js b/lib/nettime.js index e7ab720..ca2796a 100644 --- a/lib/nettime.js +++ b/lib/nettime.js @@ -12,11 +12,14 @@ function nettime (options) { return new Promise((resolve, reject) => { start = getTime(process.hrtime()) protocol.get(parameters, localResponse => { + let firstByte + response = localResponse - response.once('readable', () => { - timings.firstByte = getDuration() - }) - .on('data', () => { + response.on('data', () => { + if (!firstByte) { + timings.firstByte = getDuration() + firstByte = true + } }) .on('end', () => { timings.contentTransfer = getDuration()