Javascript 为什么setImmediate()不能在expressJS路由器中工作?
我尝试从视图调用expressJS函数 这是我的AJAX: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
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直接发送而不使用setImmediatemain
返回什么?这与setImmediate
和main(…)无关
返回未定义的。