节点JS Express模块是否异步处理请求?
问题描述:
我是NodeJs和Express服务器的新手。 我有一个简单的应用程序,处理请求:节点JS Express模块是否异步处理请求?
app.post('/addToken', tokens.addToken);
app.post('/sendNoti', iosNotification.sendNotification);`
app.get('/allNames', names.babyNames);`
var server = app.listen(8081, function() {
var host = server.address().address
var port = server.address().port
console.log("server listening at http://%s:%s", host, port)
})
如果我将创建客户端3 http请求,并执行它们一前一后这是否模块将并行执行,然后或一前一后?
答
是的,如果您在承诺列表中创建它们。它允许你同时启动所有的http请求,然后等待他们的答案。就像你会为线程做的一样。
看到如何异步设置它们
https://strongloop.com/strongblog/promises-in-node-js-with-q-an-alternative-to-callbacks/
答
不,快递不处理请求,本教程。您创建的3个http请求将一个接一个地执行,因为只有一个主线程。
只有I/O操作异步发生。
我想客户端在请求创建时independet并没有确认他为特定类型的创作。有没有办法确保服务器端的异步? – idanuda
我会说,默认情况下,它不是在服务器端的异步,你必须这样做。通过自己做,或通过使用npm库如https://www.npmjs.com/package/express-promise – guiguiblitz