Angular4 http请求冻结

时间:2018-04-25 08:12:50

标签: angular http request freeze

抱歉我的英语不好: - )

我遇到了一个我无法解释的问题。

我现在使用这些版本的角度:@ 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请求卡住并且浏览器冻结,因为高CPU使用率。

到目前为止我的调试工作:

  • 它发生在Android,Chrome浏览器,Firefox,Safari。
  • 在Chrome中使用隐身模式时f.e。它的作品,没有冻结。
  • 使用Chrome调试工具并查看网络'您将看到'待定'该特定请求的状态。在尝试查看请求标题时,您将在该窗口中显示黑色页面,其中应显示正常信息。
  • 调查应用程序'像LocalStorage或cookies一样没有提示(例如,超出LocalStorage或缓存cookie)。
  • 在查看将提供回复的服务器(简单nodejs webserver)时,根本没有请求。
  • 我尝试使用其他服务,例如" https://jsonplaceholder.typicode.com/"确保不是我的服务器不能正常工作。这里的行为相同。
  • 我尝试使用' Performance'来自chrome的工具很难获得快照,导致CPU快速冻结。虽然我做了几次所有我能看到的是很多事件发射和zone.js的东西。在那里调试没什么特别的。可以说我不是调试内部角度过程的专家。
  • 然后我试着踢出我在这个dataService上不需要的每个模块。没有运气。
  • 最后我使用了一个简单的XMLHttpRequest()来避免角度http模块。没有改变。请求明显被解雇,但冻结等待。

如果您在某个时间点放弃并删除浏览器缓存(例如Chrome中)并重新加载应用程序,它就会再次运行。

有没有人遇到过此类问题或正在处理此问题? 我在这里疯了: - (

感谢您的帮助。

0 个答案:

没有答案