Это обещание.все действительно быстро?

#javascript #node.js #typescript #api

#javascript #node.js #typescript #API

Вопрос:

для одного запроса из моего api мне приходится загружать данные из другого / внешнего API x4 раза, ранее для выполнения запроса требовалось около 3 секунд, в то время как после использования Promise.all () с вызовом функций для извлечения данных из внешнего API это время сократилось примерно до 0,4-0,6 с, пример кода ниже:

 const [ responseOne, responseTwo, responseThree, responseFour ] = await Promise.all([
    this.fetchDataOne(),
    this.fetchDataTwo(),
    this.fetchDataThree(),
    this.fetchDataFour()
])
 

простая функция для извлечения данных из внешнего API:

     async fetchDataOne(): Promise<IModel> {
        const response: IModel =  await fetch(`someUrl`);
        return await this.parseDataToObject(response);
    }
 

parseDataToObject() функция — это просто приведение

                 let parsedData: IModel= <IModel>response;
                return parsedData;
 

Есть ли здесь какой-либо способ повысить производительность, чтобы сократить время выполнения моего запроса, который состоит из еще нескольких внешних API?

спасибо за любое решение, я хочу, чтобы мой запрос был выполнен менее 0,1 секунды

Комментарии:

1. Можете ли вы поделиться тем, что было сделано перед использованием Promise.all ?

2. 0,4 — 0,6 вполне достаточно для 4 запросов. Вы могли бы добавить анимацию загрузки в свой пользовательский интерфейс, чтобы сделать его более быстрым.

3. Не доволен этими словами, но Promise.All не влияет на производительность каждой функции. Это просто дает вам хороший способ обработки параллельного запроса и ничего более

4. Вы можете удалить await from return await this.parseDataToObject(response); , так как он не возвращает обещание (не то, чтобы это существенно влияло на производительность, просто примечание)

5. Вы не можете просто сделать это меньше 0,1 секунды, если время отклика любого из 1 запроса, выполняемого параллельно, имеет время отклика больше 0,1 секунды