我如何在Node JS中一一响应客户请求

时间:2020-02-20 19:08:14

标签: node.js express

我想一一回应客户的要求。 考虑以下代码:

let i = 1;
router.post("/test", (req, res) => {
    // Wait for response to previous request from another client (If there is)
    console.log(i)
    setTimeout(function() {
      i++ 
      return res.json(true);
    }, 10000);
});

我想响应两个连续的请求,如下所示:

在0秒钟内:日志1
并且在答复上一个请求后
在10秒钟内:日志2

1 个答案:

答案 0 :(得分:0)

https://caolan.github.io/async/v3/docs.html#queue

这不能处理回调中的错误,但是您对机器有所了解。

const async = require('async')

var q = async.queue(function(task, callback) {
    task.res.json(true)
    callback();
}, 1); // concurrency 1

let i = 1;
router.post("/test", (req, res) => {
    q.push({res}, (err) => console.log(i++)) 
});

这是您要寻找的吗?

顺便说一句,很好地做您的问题的例子。