Angular4 http запрос зависает - PullRequest
0 голосов
/ 25 апреля 2018

извините за мой плохой английский: -)

У меня есть проблема, которую я на самом деле не могу объяснить.

Я сейчас использую эти версии angular: @ angular / *:4.4.6 (имеется в виду пакет @ angular / http: 4.4.6).

Я использую RxJS для выполнения http GET-запроса, подобного этому:

import {EventEmitter, Injectable} from '@angular/core';
import {Headers, Http} from '@angular/http';

@Injectable()
export class DataService {

//SOME-CODE

constructor(private _http: Http) {
    //SOME-CODE
}

getStatus() {
    const headers = new Headers({
        'Content-Type': 'application/json'
    });

    return new Promise((resolve, reject) => {
        return  this._http.get(
                    'https://[URL]:[PORT]/[PATH]',
                    {headers: headers}
                ).map(
                    (res) => res.json()
                ).toPromise()
                .then(
                    (res) => {
                        if (/*SOME-CONDITION*/) {
                            return true;
                        }else{
                            return false;
                        }

                        resolve();
                    }
                ).catch(
                    e => {
                        //ERROR-HANDLING
                        return false;
                    }
                );
        }
    }
}

Похоже, что запрос работаетхорошо для некоторых сеансов браузера, но через некоторое время (я не могу точно сказать, когда) в определенный момент, когда угловое приложение перезагружается / вызывается снова после начальной загрузки, http-запрос застревает и браузер зависает из-за высокой загрузки ЦП.

Мои усилия по отладке до сих пор:

  • Это происходит в Android, браузере Chrome, Firefox, Safari.
  • При использовании режима инкогнито в Chrome, например, он работает, без зависаний.
  • При использовании инструментов отладки Chrome и при просмотре «сетевых» действий вы увидите статус «ожидающий» в этом конкретном запросе.Пытаясь увидеть заголовок запроса, вы получите черную страницу в этом окне, где обычно должна отображаться информация.
  • При просмотре «Приложения», такого как LocalStorage или куки, нет никаких подсказок (например, превышен LocalStorage или файлы cookie используются.кэшируется).
  • При поиске сервера (простой веб-сервер nodejs), который предоставит ответ, запрос вообще не поступает.
  • Я пытался использовать другой сервис, такой как "https://jsonplaceholder.typicode.com/", чтобы убедиться, что это не мой сервер, который не работает должным образом. То же самое поведение здесь.
  • Я попытался использовать инструмент «Производительность» из Chrome, который действительно трудно получить снимок, потому что процессор быстро зависает.сделал это несколько раз, и все, что я мог видеть, было много событий и событий в zone.js. Ничего особенного для отладки там нет. Справедливости ради могу сказать, что я не эксперт по отладке внутренних угловых процессов.
  • Тогда япопытался выкинуть каждый модуль, который мне не нужен, в этом dataService. Не повезло.
  • Наконец я использовал простой XMLHttpRequest (), чтобы избежать углового модуля http.Ничего не изменилось.Запрос явно сработал, но ожидание зависания.

Если вы в определенный момент отказываетесь, удаляете кэш браузера (например, в chrome) и перезагружаете приложение, оно снова работает.

У кого-нибудь была такая проблема или она имела дело с этим?Я схожу с ума здесь: - (

Спасибо за помощь.

...