Javascript 为什么setImmediate()不能在expressJS路由器中工作?

Javascript 为什么setImmediate()不能在expressJS路由器中工作?,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我尝试从视图调用expressJS函数 这是我的AJAX: const classify = (name) => { $.ajax({ type: "GET", url: `http://localhost:3000/classify/${name}`, success: function (response) { //loader.hide() if (respon

我尝试从视图调用expressJS函数

这是我的AJAX:

const classify = (name) => {
    $.ajax({
        type: "GET",
        url: `http://localhost:3000/classify/${name}`,
        success: function (response) {
            //loader.hide()
            if (response.message != undefined) {
                alert(`${response.message}`)
                window.location = response.url
            }
        },
    });
}

$("#classify").on("click", () => {
    loader.show()
    wait.show()
    data.hide();
    const docsName = $("#nameDocs a").text();
    classify(docsName);
});
这是我的路由器:

router.get("/classify/:name", (req, res, next) => {
  let result = main(req.params.name);
  console.log("Function in process");

  console.log(`Get ${result}`);

  console.log("Next, send to view");
  setImmediate(() => {
    res.send({ url: "/", message: result });
    console.log("Send success");
  });
});
但是我很困惑,因为它是res.send(),在函数执行完成之前。所以我没有定义

我的控制台显示如下:

Function in process
Get undefined
Next, send to view
Send success
GET /classify/pdf_1617994486865_G_PM%20No.%2011%20Tahun%202010.pdf 200 18.193 ms - 11

main
function是否为异步函数(您可以在此处发布主函数)如果是,则您需要等待主函数,然后可以使用res.send直接发送而不使用setImmediate
main
返回什么?这与
setImmediate
main(…)无关
返回
未定义的