angular 2 http запрос get вызывается дважды, когда размер данных велик - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь получить исторические данные за один месяц, используя угловой http get request. Я использую угловой 5, сервер находится в узле js, а db - mongodb. При первом нажатии на кнопку он попадает на сервер и консоль печатается на сервере. Через 2 минуты сервер снова утешает, когда пользователь обращается к серверу, но пользовательский интерфейс не обращается к серверу. Через 1 минуту отправленный успешный ответ показывается сервером, но консоль пользовательского интерфейса отображает сообщение об ошибке - «соединение отклонено». Я попытался решить это с помощью доли из наблюдаемого. Но это не сработало Это мой сервис.

getReports(params): Observable<number>{
        let headers = new Headers({ 'Content-Type': 'application/json' });
        let options = new RequestOptions({ headers: headers });
        return this.http.get(url, options)
       .map((res: Response) => res.json())
       .catch(this.handleError)}

1 Ответ

0 голосов
/ 03 июля 2018

попробуйте как ниже

return this.http.get(url, options)
    .timeout(3000, new Error('timeout exceeded'))
    .map((res: Response) => res.json())
    .subscribe(
        data => this.data = data,
        error => console.debug('ERROR', error),
        () => console.log('END')
      );
    .catch(this.handleError)}

с использованием таймаута возможно. 3000 означает 3 секунды или 3000 мс

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