超出三秒自动返回一个信息 promise.race实现js
时间: 2024-10-13 21:14:18 浏览: 31
JavaScript基础教程之如何实现一个简单的promise
在JavaScript中,`Promise.race`方法用于执行两个或更多Promise中任意一个最先完成(不论是成功还是失败)的任务。当任何一个Promise完成时,`race`的结果就会立即决定,即使其他Promise还在等待。
以下是使用`Promise.race`来实现超时自动返回一个信息的示例:
```javascript
// 创建一个超时Promise,超过3秒后返回undefined(因为onfulfill默认返回undefined)
const timeoutPromise = new Promise((resolve, reject) => {
setTimeout(() => {
// 如果在3秒内没有其他Promise完成,则resolve(null)
resolve(null);
}, 3000);
});
// 定义一个基础类型的数据(原始类型)Promise,比如获取异步数据
const dataPromise = fetch('https://api.example.com/data') // 假设这是一个异步操作
// 使用race方法,如果dataPromise先完成,返回其结果;如果timeoutPromise先完成,返回undefined
const result = await Promise.race([dataPromise, timeoutPromise]);
if (result === null) {
console.log('请求超时,自动返回信息');
} else {
// 处理正常获取到的数据
}
```
阅读全文