使用await
和async
在动态请求中添加延迟可以通过setTimeout
函数来实现。下面是一个使用axios
和await/async
实现延迟请求的示例代码:
const axios = require('axios');
async function delayRequest(url, delay) {
// 使用Promise包装请求
const requestPromise = new Promise((resolve, reject) => {
setTimeout(async () => {
try {
const response = await axios.get(url);
resolve(response);
} catch (error) {
reject(error);
}
}, delay);
});
// 等待请求完成并返回结果
const response = await requestPromise;
return response.data;
}
async function makeDelayedRequests() {
try {
const url = 'https://api.example.com/data';
// 发起第一个请求,延迟1000毫秒
const response1 = await delayRequest(url, 1000);
console.log('Response 1:', response1);
// 发起第二个请求,延迟2000毫秒
const response2 = await delayRequest(url, 2000);
console.log('Response 2:', response2);
// 发起第三个请求,延迟3000毫秒
const response3 = await delayRequest(url, 3000);
console.log('Response 3:', response3);
} catch (error) {
console.error('Error:', error.message);
}
}
makeDelayedRequests();
在上面的示例中,delayRequest
函数使用setTimeout
来实现延迟。该函数返回一个包装了axios
请求的Promise
对象。在makeDelayedRequests
函数中,我们可以按顺序调用delayRequest
函数,并使用await
等待每个请求的结果。这样就可以在动态请求中添加延迟。