我有一个 NodeJS/Express Web 应用程序,其中 TypeOrm 用于许多数据库功能。为了避免回调 hell ,我通常使用 async/await
从我的端点方法调用并等待数据库操作。
但是,我听说过类似 fs.readFileSync
的方法。应始终避免,因为它们会阻塞并强制所有其他请求等待。这是否也适用于 async/await
?我是否必须使用 promise 和回调来获得不错的多用户性能?
最佳答案
Sync
功能真座事件循环,直到 io 完成。但另一方面async-await
只是 Promise 链的语法糖。它实际上不是同步的,它只是看起来像。这是您需要了解的最大区别。
但是,async-await
引入了一些问题。使 promise 过于连续。
例如,两个独立的 promise 应该与 Promise.all
并行执行但是当你使用 async-await
你倾向于做
await func1();
await func2();
因此,从逻辑上讲,您可能会自己制造瓶颈。但在语法上它没有像同步那样的任何问题。
你可以用 Babel REPL 看看 ES5 转译,你可能会更好理解一点。
关于node.js - 在 Node/Express 服务器中使用 async/await 是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57528518/