wde*_*tac 9 javascript node.js express
这是一个简单的控制器。接收来自用户的请求,执行任务并响应他们。我的目标是尽快做出响应并完成任务,这样用户就不会注意到漫长的等待时间。
这是我的代码:
router.post("/some-task", (req, res, next) => {
res.send("ok!");
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 5000); // lengthy task
});
Run Code Online (Sandbox Code Playgroud)
当发布到这个控制器时,我需要等待 5000 毫秒才能得到响应,这不是我想要的。我已经尝试过承诺,但也不起作用。正确的做法是什么?
改进 Evyatar Meged 答案的版本:
router.post("/some-task", (req, res, next) => {
res.send("ok!");
setTimeout(()=>{
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 5000); // lengthy task
}, 0);
});
Run Code Online (Sandbox Code Playgroud)
这不是关于res.end,只是setTimeout做这件事。但我不建议这样做,因为它会阻止整个应用程序处理其他请求。您可能需要考虑使用child process。
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |