如何在javascript中获取所有挂起的http请求?

如何在javascript中获取所有挂起的http请求?,javascript,http,request,angular,Javascript,Http,Request,Angular,在javascript或angular2中有方法吗 要获取挂起的http请求列表 目标是启动“其他几个流程” 根据这份名单的变动情况 是否存在可访问的请求堆栈 谢谢。如果你想这样做,你需要在后端。如果你的网站是在php上托管的,那么你就不能用javascript来实现。但是如果您使用node.js,那么这当然是可能的,因为node.js在后端使用javascript。事实上,您可以扩展Http类来拦截请求执行 import {Injectable} from 'angular2/core'; i

在javascript或angular2中有方法吗

要获取挂起的http请求列表

目标是启动“其他几个流程”

根据这份名单的变动情况

是否存在可访问的请求堆栈


谢谢。

如果你想这样做,你需要在后端。如果你的网站是在php上托管的,那么你就不能用javascript来实现。但是如果您使用node.js,那么这当然是可能的,因为node.js在后端使用javascript。

事实上,您可以扩展
Http
类来拦截请求执行

import {Injectable} from 'angular2/core';
import {Http,ConnectionBackend,RequestOptions,RequestOptionsArgs,Request} from 'angular2/http';
import 'rxjs/Rx';
import {MonitoringService} from './monitoring.service';

@Injectable()
export class CustomHttp extends Http {
  constructor(backend: ConnectionBackend,
              defaultOptions: RequestOptions,
              private monitoring:MonitoringService) {
    super(backend, defaultOptions);
  }

  request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
    console.log('request...');
    return super.request(url, options);
  }

  get(url: string, options?: RequestOptionsArgs): Observable<Response> {
    console.log('get...');
    return super.get(url, options);
  }

  (...)
}
这个
CustomHttp
类可以这样注册。我添加了一个监视服务来存储(和共享)挂起的请求数:

import {bootstrap} from 'angular2/platform/browser';
import {provide} from 'angular2/core';
import {HTTP_PROVIDERS,Http,XHRBackend,RequestOptions} from 'angular2/http';
import {AppComponent} from './app.component';
import {CustomHttp} from './http.custom';
import {MonitoringService} from './monitoring.service';

bootstrap(AppComponent, [HTTP_PROVIDERS,
  MonitoringService,
  provide(Http, {
    useFactory: (backend: XHRBackend, defaultOptions: RequestOptions, monitory:MonitoringService) => new CustomHttp(backend, defaultOptions, monitory),
    deps: [XHRBackend, RequestOptions, MonitoringService]
  })
]);

我创建了一个plunkr来描述实现这种方法的方法:。

这并不总是正确的,如果你在前端提出请求,你当然可以至少手动跟踪它们。如果你在谈论从前端提出的请求,那么用变量跟踪em应该很容易……我认为他也打算从其他用户那里获得所有未决的请求。谢谢你的回答。
import {bootstrap} from 'angular2/platform/browser';
import {provide} from 'angular2/core';
import {HTTP_PROVIDERS,Http,XHRBackend,RequestOptions} from 'angular2/http';
import {AppComponent} from './app.component';
import {CustomHttp} from './http.custom';
import {MonitoringService} from './monitoring.service';

bootstrap(AppComponent, [HTTP_PROVIDERS,
  MonitoringService,
  provide(Http, {
    useFactory: (backend: XHRBackend, defaultOptions: RequestOptions, monitory:MonitoringService) => new CustomHttp(backend, defaultOptions, monitory),
    deps: [XHRBackend, RequestOptions, MonitoringService]
  })
]);