В чем разница между async await и async hooks в узле.JS
Async_hooks были введены в качестве экспериментальных в узле v8. Поскольку имя похоже на ES2017 async , может показаться, что они каким-то образом связаны. Так ли это? Если да, то каким образом (дополняющим или конкурирующим)?
1 ответ:
Async_hooks API делает его легче для вас, чтобы отслеживать Ваши ресурсы. Вы начинаете с инициализации его с необязательным объектом любого из:
init
,before
,after
иdestroy
. Получение ресурса запускает один из таких обратных вызовов. Смыслasync_hooks
заключается в том, чтобы обеспечить более эффективное отслеживание асинхронных ресурсов и их обратных вызовов.
async await
позволяет писать код, который имеет многообещающие асинхронные части в более привычном синхронном виде.Для пример:
async function Double() { let result = await PromiseWhichReturnsNumber(); return result * 2; }
В приведенной выше функции
async
функция приостановит выполнение вPromiseWhichReturnsNumber()
до тех пор, пока обещание не будет выполнено (и результаты не будут назначеныresult
).Эти 2 концепции решают различные проблемы:
async await
позволяет писать обещания "синхронно".async_hooks
позволяет отслеживать асинхронные ресурсы.