Получить данные из http звонка внутри цикла.Угловой 2+ - PullRequest
0 голосов
/ 02 октября 2018

Здравствуйте! Я хочу вызвать мой http-запрос внутри цикла for, потому что я хочу выполнять одновременно только 1000 элементов.Итак, у меня есть следующий код:

getData(IDs: string[]): Observable<any> {
    // IDs is a large array of strings, about 3000 of them

    const results = [];
    const totalData = [];

    // split the IDs array into chunks of 1000
    while (IDs.length) {
      results.push(IDs.splice(0, 1000));
    }

    // loop through the new array with the chunks of 1000 and run the http request
    for (let i = 0; i < results.length; i++) {
      const data = this.http.get(`myhttprequest/${results[i]}`);

      totalData.push(data);
    }

    console.log(totalData); 
    // this is just an array of observables when I am looking for an array of data

    return totalData
}

Я не получаю никаких ошибок, но вместо того, чтобы возвращать данные массива, он просто возвращает массив наблюдаемых.

Я знаю, потому что этопеременные обновляются до того, как данные возвращаются, поэтому я попытался использовать обещания, и, к сожалению, я не могу заставить это работать.

Может ли кто-нибудь помочь мне заставить эту функцию возвращать данные вместо наблюдаемых?

Спасибо!

1 Ответ

0 голосов
/ 02 октября 2018

Всегда подписываться!

Метод HttpClient не начинает свой HTTP-запрос до тех пор, пока вы не вызовите метод subscribe () для наблюдаемого, возвращаемого этим методом.Это верно для всех методов HttpClient.

Ссылка ссылка .

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