как добавить несколько API-интерфейсов - PullRequest
0 голосов
/ 21 декабря 2018

У меня несколько апи.Как я могу получить выходные данные. Здесь я добавил образец фрагмента.в этом ABC является компонентом.следующий компонент xyz, pqr вот так.

let str1="http://localhost:ip/abc?text="+this.state.content;
    fetch(str1, {
        method: "GET",
        })
        .then(res => res.json())
        .then(res => {
          this.setState({
            res: res.abc
            });
        });

1 Ответ

0 голосов
/ 21 декабря 2018

Я собираюсь сделать некоторые предположения.Предполагая, что вы хотите сделать 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-адреса с использованием «компонента».Приведенный выше фрагмент также не учитывает вероятность того, что ваш компонент может быть отключен, пока запросы еще находятся в полете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...