#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
fromreturn await this.parseDataToObject(response);
, так как он не возвращает обещание (не то, чтобы это существенно влияло на производительность, просто примечание)5. Вы не можете просто сделать это меньше 0,1 секунды, если время отклика любого из 1 запроса, выполняемого параллельно, имеет время отклика больше 0,1 секунды