怎样做类似于优酷的视频网站河南郑州网站顾问
原因:由于setTimeout是异步的,for循环是同步的,所以你的循环会立即继续到下一个迭代,而不会等待setTimeout完成。这意味着所有setTimeout调用几乎会同时开始等待2秒,而不是一个接一个地等待,因此程序出错。
解决方法:
// 创建一个返回Promise的延迟函数
function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms));
} // 使用async标记函数,以便使用await
async function processListInfo(EleList, list) { for (var index = 0; index < EleList.length; index++) { // ... 省略之前的代码 ... // 等待2秒 await delay(2000); }
} // 调用异步函数
processListInfo(EleList, list).then(() => { // 所有操作完成后执行的代码 console.log('所有xxx信息已处理完毕');
}).catch(error => { // 处理任何可能发生的错误 console.error('处理xxx信息时出错:', error);
});