当一个站点使用jquery / XMLhttp请求时,我们能够使用jQuery.active在后端获得活动的ajax调用。但是当一个站点使用aurelia fetch进行ajax调用时,如何在后端获取活动的fetch调用次数?
答案 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;
}
});
});