Я собираюсь сделать некоторые предположения.Предполагая, что вы хотите сделать 3 разных запроса API одновременно и использовать результаты для React setState
, вы можете сделать это с помощью Promise.all
:
const reqA = fetch(`http://localhost:ip/abc?text=${this.state.content}`);
const reqX = fetch(`http://localhost:ip/xyz?text=${this.state.content}`);
const reqP = fetch(`http://localhost:ip/pqr?text=${this.state.content}`);
Promise.all([reqA, reqX, reqP]).then(function(allResults) {
Promise.all(allResults.map(res => res.json())).then(function(
jsonResults
) {
console.log("Results", jsonResults);
// Parse, and call `setState` here
});
});
Приведенный выше фрагмент кода вызовет XHR-вызовы3 URL-адреса одновременно, собрать его результат, попытаться проанализировать ответ в JSON для всех 3 ответов и собрать результаты этого.На этом этапе вы можете проанализировать и установить ответ в состоянии.
Обратите внимание, что это не включает логику для обработки ошибок в любом из 3 запросов.Вы должны учитывать это.Если URL-адреса вашего запроса аналогичны приведенному выше фрагменту кода, возможно, вы можете определить функцию для создания URL-адреса с использованием «компонента».Приведенный выше фрагмент также не учитывает вероятность того, что ваш компонент может быть отключен, пока запросы еще находятся в полете.