【问题标题】:Queue node.js callbacks队列 node.js 回调
【发布时间】:2014-01-27 14:11:46
【问题描述】:

我正在使用 node.js 和 express。我打开了一个 REST API,它是

app.get('/pushtoqueue/:id', function(req, res){
  //do something
  callFunction(data, function(){
    //Do sequential execution
  }); 
}

当 REST 收到请求时,它会调用 callFunction,该函数需要按顺序执行。这意味着,当调用 REST 时,应处理第一次请求,而 callFunction 正在执行中,如果另一个请求到达 callFunction,则应排队等待第一次执行完成,依此类推,以获取更多未来请求。

如何在 node.js 中实现这一点。有没有办法排队请求?

【问题讨论】:

  • 不确定这里有什么问题。 Nodejs 在单线程中工作,默认情况下所有内容都排队。在您的示例中,您应该必须从 callFunction 回调中发送响应,如果您想要更多控制,您可以使用 asyncjs。

标签: node.js queue


【解决方案1】:

您需要使用自动执行其元素的队列。如果队列为空,则当您推送第一个任务时,它会立即执行。在执行任务时,可能会推送另一个任务,因此它不会被执行,而是被排队。

我有一个模块可以做到这一点:deferred-queue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 2022-11-02
    • 2012-12-03
    • 2023-03-03
    相关资源
    最近更新 更多