API takes more time to respond in pending state than it shows in chrome network tab

Viewed 247

In my react redux application, using saga and superagent client to make asynchronous https api calls.

Api stays in pending state for around 4-5 secs and then below is timing analysis i got shows took miliseconds to respond. but on clock it took 5 secs around. why is this lag. this happens even if no other parallel requests are there

enter image description here

and if i hit the same api through postman or curl. respond faster in ms.

Below is the api client code:

    constructor() {
    methods.forEach(
        method =>
            (this[method] = (
                path: string,
                { params, data, timeout, authToken }: APIRequest = {}
            ) =>
                new Promise((resolve, reject) => {
                    const request = superagent[method](formatUrl(path));
                    request.timeout(timeout || 60000);
                    request.set('Authorization', authToken || this.getToken());
                    if (params) {
                        request.query(params);
                    }

                    if (data) {
                        request.send(data);
                    }

                    request.then((body: Response) => {
                        resolve(body.body)
                    }).catch((err: ResponseError) => {

                        // HACK to redirect to session expired
                        if (err.status === 401) {
                            if (window.location.href.indexOf('/customer/') > -1) {
                                window.history.pushState('', '', '/customer/session-expired')
                            } else {
                                window.history.pushState('', '', '/designer/session-expired')
                            }
                        }
                        reject(err)
                    });
                }))
    );
}

Below is the saga code to call api:

const result = yield SpacecraftBackendClient.post(
  `/api/v1.0/xyz/${abc}/init3D`,
  {
    data: {
      abc,
      sessionId,
      xyz: convertConnectionType(controller)
    }
  },
);
yield takeLatest(cartActionTypes.INIT_3D, init3D);
0 Answers
Related