js如何循环调用一个接口当接口返回正确信息就停止调用
时间: 2024-10-27 14:09:52 浏览: 18
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
JavaScript 中可以使用 `async` 和 `await` 结合 `while` 或者 `for` 循环来实现这种递归式的接口调用,直到获取到正确的信息为止。下面是一个简单的示例:
```javascript
async function callApiUntilSuccess(apiUrl) {
let response;
while (!response || !response.success) { // 检查响应是否成功
try {
response = await fetch(apiUrl);
response = await response.json(); // 将响应体解析为JSON
} catch (error) {
console.error('Error fetching API:', error);
}
if (!response || !response.success) { // 如果未获取到成功信息
// 等待一段时间再尝试,比如间隔1秒
await new Promise(resolve => setTimeout(resolve, 1000));
}
}
return response; // 返回正确的响应数据
}
// 调用函数并处理结果
const result = await callApiUntilSuccess('http://api.example.com/data');
console.log(result);
阅读全文