【发布时间】:2018-12-31 15:22:58
【问题描述】:
例如:考虑 nodejs 中的用户注册 Web 服务。在函数内部,我编写了用于验证 DB 中是否存在电子邮件的代码(整个函数也是使用 asyn await 编写的)。这在一次发出单个请求时有效。当使用相同的 email_id 进行多个注册 api 调用时,此验证将不起作用。请让我知道是否有人以前遇到过类似的问题以及相同的解决方案。
【问题讨论】:
-
这就是 JavaScript 单线程异步特性的问题。您可以浏览以下博客文章,这将帮助您解决问题。 mattpalmerlee.com/2014/03/22/a-pattern-for-handling-concurrent
-
我们该如何解决呢?让它成为多线程的?,如果是这样的话。
-
如果它对单个请求正常工作,那么它也应该适用于多个。您是否发现它因多个请求而失败,或者这只是您的想法?您能解释一下执行多个 req 时您面临的确切问题吗?
-
经过适当训练,可以编写可靠的异步代码,同时处理数以亿计的请求。如果您发布了您的实际代码,我们甚至可以在您的上下文中向您展示如何操作。但是,编写一个关于如何在没有任何代码的情况下做到这一点的通用教程超出了堆栈溢出的范围。 node.js 不支持同步网络和为此所需的线程基础设施。如果需要,请选择一种以这种方式工作的语言,例如 Java。或者,学习如何编写适当的异步 Javascript 来解决您的问题。
-
来自帮助中心:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及最短的代码有必要在问题本身中重现它。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
标签: node.js httprequest synchronous