创建一个池,该池异步监视阵列(池)的更改,然后通过async.eachlimit

时间:2019-01-27 11:31:52

标签: javascript node.js asynchronous async.js

我正在尝试拥有一个池,该池位于服务器上,始终等待来自客户端的请求。然后,当客户端执行一个操作时,将该操作添加到阵列池中,并在服务器上进行处理,一旦处理完成,将其从池中删除。

我尝试使用async.eachlimit,但是每当我将项目推入数组时都不会发生。我在基本级别上也按照https://github.com/caolan/async/issues/1551使用过es6生成器,尽管对它们的理解不足以使其正常工作。

let tasksPool = [];

  let processTask = async function(task) {
    // await etc
  }

  eachLimit(tasksPool, 5, function(task, callback) {
    processTask(task).then(() => {
      callback();
    });
  });

  app.get('/some-url', (req, res) => {
    tasksPool.push(req.body.task);
  });

但是当我向数组中添加内容时,它不会重新触发eachLimit进程。我希望eachLimit有效地监视数组的更改。我希望我能理解您的示例所发生的事情,足以自己解决这个问题,尽管以前没有看过很多语法。

我希望将项目添加到池中时,每个限制将执行添加到数组中的新项目。

有什么建议值得赞赏吗?

0 个答案:

没有答案