如何使用 JavaScript 的 async/await 和 setInterval 函数实现每隔1秒生成并打印10个随机数?
时间: 2024-12-18 14:15:04 浏览: 11
在JavaScript中,你可以结合`async/await`和`setInterval`函数来实现这个需求。`async/await`使得异步操作看起来像是同步的,而`setInterval`则用于定期执行某个任务。下面是一个示例:
```javascript
// 首先,我们需要创建一个异步函数,它会生成随机数
function getRandomNumber() {
return new Promise((resolve) => {
setTimeout(() => {
const randomNum = Math.floor(Math.random() * 100); // 生成0到99之间的随机数
resolve(randomNum);
}, 1000); // 等待1秒后再返回结果
});
}
// 使用async/await和setInterval
async function printRandomNumbers() {
let count = 0;
const intervalId = setInterval(async () => {
try {
const randomNumber = await getRandomNumber();
console.log(randomNumber);
count++;
if (count === 10) { // 当打印了10个随机数后停止setInterval
clearInterval(intervalId);
}
} catch (error) {
console.error("Error generating random number:", error);
}
}, 1000);
}
// 启动定时打印任务
printRandomNumbers();
```
在这个例子中,我们首先创建了一个名为`getRandomNumber`的异步函数,它会在1秒后返回一个新的随机数。然后我们在`printRandomNumbers`函数中使用`setInterval`每秒调用一次`getRandomNumber`,并将结果打印出来。当打印了10个随机数后,我们会清除`setInterval`以结束循环。
阅读全文