nodejs 我有一个长度为1000的数组 每次执行的函数的时候 每次取前十个 执行完后删除前十个 完整代码
时间: 2024-10-18 12:05:24 浏览: 27
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
Node.js 中处理大量数据并且分批处理通常会使用 `async` 或者 `stream` 结构,因为它们适合处理异步操作和流式数据。以下是一个简单的示例,使用 `async` 遍历并逐批处理数组:
```javascript
const { clearInterval, setTimeout } = require('timers/promises');
const { v4: uuidv4 } = require('uuid');
// 假设你有一个名为 'dataArray' 的大数组
let dataArray = [...]; // 这里你需要填充实际的数据
let batchSize = 10;
let currentIndex = 0;
function processBatch(batch) {
console.log(`Processing batch ${batch}`);
// 这里是处理每个批次数据的具体逻辑
// 假设我们只是简单地打印出来
batch.forEach(item => console.log(item));
}
async function processDataInBatches() {
while (currentIndex < dataArray.length) {
const endIndex = Math.min(currentIndex + batchSize, dataArray.length);
const batch = dataArray.slice(currentIndex, endIndex);
await processBatch(batch);
// 删除已处理的元素
dataArray.splice(0, endIndex - currentIndex);
currentIndex += batchSize;
// 等待一段时间,模拟处理时间
await new Promise(resolve => setTimeout(resolve, 500)); // 调整这个值以适应实际的处理速度
}
}
// 开始处理数据
processDataInBatches()
.catch(console.error);
```
注意,这里假设了数据可以立即处理完毕,如果处理过程需要异步操作,请在 `processBatch` 函数内部添加适当的异步代码。
阅读全文