如何获得活跃的aurelia获取ajax调用计数

时间:2017-03-23 05:32:04

标签: aurelia

当一个站点使用jquery / XMLhttp请求时,我们能够使用jQuery.active在后端获得活动的ajax调用。但是当一个站点使用aurelia fetch进行ajax调用时,如何在后端获取活动的fetch调用次数?

2 个答案:

答案 0 :(得分:1)

我的fetch调用有一个包装器,它在每个调用之前递增一个变量,然后在.then代码块中减少它。这似乎运作良好。

示例代码:

getData(url) {
  // Http Fetch Client to retreive data (GET)
  this.apiCalls += 1;
  console.log("getData from API: " + url);
  return this.httpClient.fetch(url, {
    credentials: 'include'
  }).then(response => {
    this.apiCalls -= 1;
    if (!response.ok) {
      throw Error(response.statusText);
    }
    return response.json();
  }).catch(error => {
    this.apiCalls -= 1;
    console.log(error);
    return null;
  });
}

答案 1 :(得分:0)

我通过创建单例/全局值然后使用interceptors配置客户端来完成此操作。在那里你可以挂钩你的所有请求/响应。修改单例,然后将单例导入任何需要它的viewmodel。 fetch-client和httpclient都支持这一点。

let client = new HttpClient();
client.configure(x => {
    x.withInterceptor({
      request(message) {
        singleton.activeConnections++;
        return message;
      },

      response(message) {
        singleton.activeConnections--;
        return message;
      }
    });
  });