我的本地测试发现这个问题是正确的。
给出以下代码,其中“asyncOne”和“asyncTwo”是异步函数,如果“asyncTwo”在“asyncOne”之前完成,“asyncOne”是否仍有时间完成执行?
router.get("/", function (req, res, next) {
asyncOne(function () {
console.log("Completed asyncOne");
});
asyncTwo(function () {
console.log("Completed asyncTwo");
return res.json("Done.");
});
});
最佳答案
是的,所有代码都会执行。但是您无法在 asyncOne
函数中 return res.json("Done.");
,因为已经发送了结束响应。
如果您希望在两个异步函数完成后调用 return,您应该查看 async模块。真的很棒。
关于javascript - NodeJs,api路由返回后异步函数是否完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34853664/