给定⼀个获取数据的⽅法 getRawData,封装 getRawData 实现新⽅法 getData,若 getRawData 超过 10s 没返 回数据,getData 抛出 timeout 错误。用js实现
时间: 2023-12-03 16:44:34 浏览: 143
getData:获取数据
可以使用 Promise 和 setTimeout 来实现这个需求,以下是一个示例代码:
```javascript
function getData() {
return new Promise((resolve, reject) => {
const timeoutId = setTimeout(() => {
reject(new Error('timeout'));
}, 10000); // 设置超时时间为 10s
getRawData()
.then((data) => {
clearTimeout(timeoutId); // 取消超时计时器
resolve(data);
})
.catch(reject);
});
}
```
在上述代码中,我们首先返回一个 Promise 对象,并在 Promise 的回调函数中调用 getRawData 方法,同时设置一个超时计时器。如果 getRawData 成功返回数据,我们取消超时计时器并 resolve Promise。如果 getRawData 返回错误,我们直接将错误传递给 Promise 的 reject 函数。而如果超时计时器触发,我们将会 reject Promise,并抛出 timeout 错误。
阅读全文