我正在构建一个代码,该代码使我能够等待一个承诺被解决以继续到下一个,我还要为每个等待添加一个单独的时间,但是如果我删除了等待,则仅打印第一个循环秒,效果很好。
在播放代码中出现此错误,在其他编辑器中,我只是打印了第一个循环
error: Infinity loop on line 8, char 6. You can increase loop timeout in settings.
https://playcode.io/309050?tabs=console&script.js&output
如果代码可以工作,请在stackoverflow代码编辑器中使用,但是在我的项目或其他代码编辑器中,则不能使用
const urls = [
'https://jsonplaceholder.typicode.com/todos/1',
'https://jsonplaceholder.typicode.com/todos/2',
'https://jsonplaceholder.typicode.com/todos/3'
];
async function getTodos() {
for (const [idx, url] of urls.entries()) {
const todo = await fetch(url);
console.log(`Received Todo ${idx+1}:`, todo);
await wait(1000)
}
console.log('Finished!');
}
getTodos();
function wait(ms) {
return new Promise(r => setTimeout(r, ms));
}
答案 0 :(得分:2)
某些在线代码游乐场like CodePen具有内置的无限循环检测功能。这是为了防止在临时编码时意外编写无限循环的情况下冻结UI。这通常是通过静态分析代码来实现的。因此,它无法告诉您代码在运行时实际执行的操作(并且可能根本不是无限的)。他们能做的最好的就是基于结构的猜测。
在您的情况下,您的代码编辑器认为您正在执行无限循环。您的编辑器中可能有一些设置可以禁用它。