может повлиять на производительность?
async/await
всегда влияет на производительность.
Если вы добавите async
в синхронную функцию, у вас будет ухудшениепроизводительность 400%. Простой банчмарк
Добавление await
в Node.js <= 11 create 2 Обещания на низком уровне, один затем переносит верхний код, а другой - для следующих литералов.С Node.js 12 <code>await даст только одно дополнительное Promise.
v8 и Node.js прилагают все усилия, чтобы уменьшить это влияние на производительность. V8 Статья , которая объясняет, как async/await
работает под капотом.
Вместо этого, глядя на ваш пример, это нехорошо, потому что вы ничего не ждете:
await anyMethod2().then(function () { res.reply('hello') })
Если вы не используете результат await
, то это бессмысленно, потому что результат будет одинаковым в конце:
await anyMethod2().then(function () { res.reply('hello') })
anyMethod2().then(function () { res.reply('hello') })
Эти два предложения дают одинаковый результат, но с разными издержками (и управлением ошибками).
И вы должны подумать, могут ли anyMethod1()
и anyMethod2()
быть параллельными или последовательными.В вашем примере вы потеряли параллелизм.
Это стоит:
const res = await anyMethod2().then(function () { return {hi:'world'} })
res.reply(res)
Если вы await
, используйте вывод!