Реагировать на выборку нескольких URL - PullRequest
2 голосов
/ 05 марта 2020

У меня есть маршрут, который извлекает данные JSON из API и res.send их в компонент моей веб-страницы.

app.get('/search-data', (req, res) => {

    fetch(url)
    .then(res => res.json())
    .then(data => { 
       res.send({ data });
    })
    .catch(err => {
       res.redirect('/error')
    })

Я хочу сделать несколько запросов на выборку. Я думаю, что мне нужно использовать Promise.all, но как мне отформатировать его?

Мой компонент получает один массив данных:

async componentDidMount() {    
   const response = await fetch('/search-data');
   const res = await response.json();
   ...

1 Ответ

2 голосов
/ 05 марта 2020

Если вы хотите получить и проанализировать несколько URL-адресов, а затем отправить все результаты в одном массиве, это должно сделать это:

   app.get('/search-data', (req, res) => {
        let myfetches = [];

        myfetches.push(fetch(url1).then(res => res.json()));
        myfetches.push(fetch(url2).then(res => res.json()));
        myfetches.push(fetch(url3).then(res => res.json()));

        Promise.all(myfetches)
        .then(datas => { 
           res.send({ datas });
        })
        .catch(err => {
           res.redirect('/error')
        })
...