首页 > 解决方案 > 在大型数组上循环 node.js 脚本的最佳方法

问题描述

我正在从数据库中获取一组对象,并以一种繁重的方法使用它们的数据来创建一些 SVG 文件。

MongoClient.connect(MONGO)
  .then((database) => {
    data = database
    db = database.db('apidatabase')
    return db.collection('Products')
      .find({
        owner: 'pingu',
      })
      .toArray()
  })
  .then((products) => {
    products.forEach((product, index) => {
      createFiles(product) // the heavy method
    })
  })
  .catch((error) => {
    console.log({ error })
    data.close()
  })

如果我为所有对象(我有超过 6000 个对象)启动我的脚本,脚本就会冻结,并且什么也做不了。我必须对我的数组进行切片,并通过 20 个对象的切片来遍历它们。

有没有办法正确迭代这些对象,以便脚本对所有 6000 个对象顺利运行?

标签: node.js

解决方案


您应该createFiles在 Node.JS 中 fork 函数并对其进行处理。请参阅文档以了解如何将整个响应分叉并检索回您的函数。


推荐阅读