javascript中的wait关键字会降低应用程序的速度吗?

javascript中的wait关键字会降低应用程序的速度吗?,javascript,node.js,asynchronous,async-await,Javascript,Node.js,Asynchronous,Async Await,我对NodeJS比较陌生。我想知道wait关键字是否会降低整个javascript/nodeJS程序的速度 比如说, 如果我在一个服务器文件上写入了多个express路由器,并且一个路由器函数调用“等待”以获得解决承诺,那么在解决承诺之前,所有其他路由器和异步函数是否会保持暂停/暂停状态?或者只是该线程将暂停 在这种情况下,wait调用将导致Javascript程序出现性能问题?否。虽然wait听起来像是阻塞,但它是完全异步的(非阻塞),因为它也通过async关键字隐含在所需的函数签名中。这是一

我对NodeJS比较陌生。我想知道wait关键字是否会降低整个javascript/nodeJS程序的速度

比如说,

如果我在一个服务器文件上写入了多个express路由器,并且一个路由器函数调用“等待”以获得解决承诺,那么在解决承诺之前,所有其他路由器和异步函数是否会保持暂停/暂停状态?或者只是该线程将暂停


在这种情况下,wait调用将导致Javascript程序出现性能问题?

否。虽然wait听起来像是阻塞,但它是完全异步的(非阻塞),因为它也通过async关键字隐含在所需的函数签名中。这是一个更好的使用承诺的方式。因此,请继续在代码中使用它


您还提到了线程,我建议您在开发node.js应用程序时忽略线程概念,并信任node.js事件循环。只是永远不要使用阻塞IO调用(通过在名称中使用“Sync”来明确命名)。

等待承诺得到解决,但正如我们所知,节点本质上是异步的,因此,将向应用程序提出其他请求,但这些请求不会对他们产生影响。他们不会等待前一个请求承诺得到解决

范例

route 1 -> it will await and iterate through million rows and return sum in response
route 2 -> it will only return '1' in response

现在,当我们先呼叫路线1,然后再呼叫路线2时,您将看到仍然会立即收到路线2的响应,当路线1完成时,您将收到该响应

不,
wait
的全部要点是异步等待。简单的答案是不,这只是使用承诺的更干净的方式。一般来说,不,它不会。即使是这样,也不会产生任何切实可行的区别。只有在调用该路由的函数时才会发挥作用,这可能会澄清很多关于async/await的问题