如何在代码中设置超时限制来避免网络延迟造成的回调错误?
时间: 2024-11-18 11:27:03 浏览: 14
在代码中设置超时限制来防止网络延迟引发的回调错误,通常可以在发起网络请求或开始异步操作时添加一个定时器。这里以JavaScript的axios库为例:
```javascript
const axios = require('axios');
function fetchData(url, timeout) {
return new Promise((resolve, reject) => {
const timer = setTimeout(() => {
reject(new Error('Timeout occurred'));
}, timeout);
axios.get(url)
.then(response => {
clearTimeout(timer);
resolve(response.data);
})
.catch(error => {
clearTimeout(timer);
reject(error);
});
});
}
// 使用示例
fetchData('http://example.com/data', 5000) // 设置超时时间为5秒
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Error:', error.message);
});
```
在这个例子中,我们定义了一个函数`fetchData`,它接受一个URL和一个超时时间作为参数。当请求成功或失败时,会自动清除计时器,如果超时则会拒绝Promise并抛出错误。
阅读全文