在每个从fetch调用返回的对象中保留一些属性可以通过在fetch请求中使用自定义的响应拦截器来实现。响应拦截器可以在fetch请求返回的Promise对象上注册一个回调函数,用于处理返回的响应数据。
以下是一个示例代码,展示了如何在每个从fetch调用返回的对象中保留一些属性:
// 定义一个空对象,用于存储需要保留的属性
const preservedProperties = {};
// 自定义响应拦截器
function responseInterceptor(response) {
// 在这里可以对返回的响应数据进行处理
// 例如,将需要保留的属性存储到preservedProperties对象中
preservedProperties[response.url] = {
status: response.status,
headers: response.headers,
// 其他需要保留的属性
};
return response;
}
// 注册响应拦截器
fetch.interceptors.response.use(responseInterceptor);
// 发起fetch请求
fetch('https://api.example.com/data')
.then(response => {
// 在这里可以访问保留的属性
console.log(preservedProperties[response.url]);
return response.json();
})
.then(data => {
// 处理返回的数据
console.log(data);
})
.catch(error => {
// 处理错误
console.error(error);
});
在上述代码中,我们定义了一个空对象preservedProperties
,用于存储需要保留的属性。然后,我们定义了一个自定义的响应拦截器responseInterceptor
,在该拦截器中,我们将需要保留的属性存储到preservedProperties
对象中。接下来,我们使用fetch.interceptors.response.use
方法注册了该响应拦截器。
最后,我们发起了一个fetch请求,并在返回的Promise对象的then
方法中访问了保留的属性。你可以根据实际需求修改和扩展这个示例代码,以满足你的具体需求。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云