извините за мой плохой английский: -)
У меня есть проблема, которую я на самом деле не могу объяснить.
Я сейчас использую эти версии 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) и перезагружаете приложение, оно снова работает.
У кого-нибудь была такая проблема или она имела дело с этим?Я схожу с ума здесь: - (
Спасибо за помощь.