javascript - 为什么 setImmediate() 在 expressJS 路由器中不起作用?
问题描述
我尝试从视图中调用 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
解决方案
推荐阅读
- c - 空套接字缓冲区(C 编程)
- uwp - 在 UWP 中拍摄流式 Rtsp 视频的快照
- c# - 为什么我无法从我的 NPGSQL 服务器获取数据?
- aws-lambda - 从 Lambda 解析网络负载均衡器的 DNS 名称
- c# - Azure 数据库中的存储过程在 ASP.NET 中运行速度很快,但在 SSMS 中运行速度很慢
- java - 如何使用jsoup在java中打开不同浏览器的URL
- r - 我想故意将数据框中的 5%、10% 的值替换为 NA 以模拟随机丢失的数据
- c++ - 通过 SID 获取 Windows 本地组名
- sql - 按键获取最小值/最大值 - 不同的方法
- sparql - Sparql 查询以获取和删除重复记录