Предположим, у меня есть конечная точка API, написанная на JavaScript, такая как сценарий 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, чтобы ввести нового пользователя в базу данных, а также отправить ему электронное письмо. Электронная почта не будет частью ответа сервера, поэтому асинхронное выполнение лучше, поскольку они могут выполняться одновременно.
В чем преимущество асинхронной версии этих двух сценариев?