服务器端异步代码的优势?

时间:2019-01-27 04:04:22

标签: asynchronous serverside-javascript

假设我有一个用JavaScript编写的API端点,例如下面的方案A和方案B(注意,这是用于说明的伪代码)。 服务器需要同时返回数据库调用的结果以及函数A和函数B的结果。

注意:我的问题不是关于异步代码如何工作。

方案A-异步

db_connection.async_query(sql)
  .then( result => {
    functionA(result);
  })
  .then( result => {
    functionB(result);
  })

方案B-同步

const result = db_onnection.sync_query(sql)
functionA(result)
functionB(result)

由于数据库调用的结果和两个函数的结果都需要由服务器同时返回,因此异步版本有什么好处吗?它不够简洁,不像同步版本那么容易阅读。

我有一个相当复杂的应用程序,在浏览器中具有异步代码,这很合理,但是我想知道它是否会给服务器端增加不必要的复杂性,因为我最终还是会一次将所有结果都发送回去。

我能想到的一个例外是,如果我要进行API调用以将新用户输入数据库并向他们发送电子邮件。电子邮件不会成为服务器响应的一部分,因此异步执行会更好,因为它们可以同时运行。

这两种方案的异步版本有什么优势?

0 个答案:

没有答案