假设我有一个用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调用以将新用户输入数据库并向他们发送电子邮件。电子邮件不会成为服务器响应的一部分,因此异步执行会更好,因为它们可以同时运行。
这两种方案的异步版本有什么优势?