如何在react native中获取API请求的响应时间?

hxzsmxv2  于 2023-10-22  发布在  React
关注(0)|答案(3)|浏览(144)

我想得到请求和响应之间的时间差。例如,在下面的代码中,完成请求的时间间隔是多少?

return fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
   **# How much time above fetch request took ?**
  return responseJson.movies;
})
wgx48brx

wgx48brx1#

您可以使用日期获取当前时间

var d = new Date();
var n = d.getTime();

在API调用之前和响应之后。并减去这两个时间。
您将以毫秒为单位获得答案。

huus2vyu

huus2vyu2#

你只需要在启动调用之前设置一个带有时间的变量,并在响应方法中获取与当前时间的差值。
假设这是你的函数

function getData()
{
 const start = new Date();
 return fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
   const timeTaken= (new Date())-start;
  return responseJson.movies;
})

}

timeTaken将是请求所用的实际时间。

lc8prwob

lc8prwob3#

解决方案:

测量API调用的开始时间;

const start = new Date();
console.log(start, 'start time in page');

测量API被调用到响应结束时的结束时间和开始与结束之间的时间;

const timeTaken = (new Date()) - start;
const timeTakenSec = timeTaken / 1000;
console.log(timeTakenSec, 'time taken in  page');

示例:

//To Measure Starting Time before api call

    const start = new Date();
    console.log(start, 'start time in page');
    fetch(url)
        .then((response) => {
          if (!response.ok) {
            throw new Error(`Network response was not ok (Status: ${response.status})`);
          }
          // Parse the response body as JSON
          return response.json();
        })
        .then((data) => {
          // Data contains the parsed JSON response from the API
          return data;

    //To Measure the End Time after response data

    const timeTaken = (new Date()) - start;
    const timeTakenSec = timeTaken / 1000;
    console.log(timeTakenSec, 'time taken in  page');
        })

相关问题