Я попытался посчитать запрос - время ответа программно, и в итоге получил следующий код:
function fakeRequest(wait) {
return new Promise(resolve => {
setTimeout(() => resolve(wait), wait);
});
}
function calculateTime(fn, params) {
const startTime = new Date().getTime();
fn(...params)
.then(response => {
const endTime = new Date().getTime();
const requestTime = endTime - startTime;
console.log(`
Request should take ${response} ms
Request took ${requestTime} ms
`);
});
}
calculateTime(fakeRequest, [2000]);
В этом примере у нас есть жестко закодированное время разрешения (2000 миллисекунд), и, как я понимаю, конечный результат должен быть таким же - 2 секунды.Но когда я запускаю этот код на своей машине, он дает мне разные результаты между 2000 мс и 2003 мс .
Я пытаюсь выяснить, где эти 3 миллисекундыприходят от:
Причина - время выполнения new Date().getTime()
.(но если да, то почему мы получаем разные результаты в период между 2000 и 2003 годами, почему они не одинаковы при каждом выполнении?).
Причина - асинхронный характер запроса, дажехотя оно имеет жестко закодированное время разрешения.
Что-то еще.
Я хотел бы услышать ваши мысли и найтиспособ получить реальное время ответа (в данном случае 2 секунды).