Асинхронная обработка обратного вызова с помощью Await
В определенных сценариях при использовании обратных вызовов, таких как:
test() { api.on( 'someEvent', function( response ) { return response; }); }
возможно, вам придется включить асинхронность. Чтобы сделать эту функцию асинхронной и использовать await, сначала необходимо убедиться, что функция обратного вызова (someEvent) возвращает обещание. Это связано с тем, что асинхронные функции полагаются на Promises для выполнения асинхронных операций.
Пересмотренная версия api.on():
function apiOn(event) { return new Promise(resolve => { api.on(event, response => resolve(response)); }); }
Используя эту обновленную функцию, теперь вы можете изменить test() как асинхронную функцию:
async function test() { return await apiOn( 'someEvent' ); }
Однако асинхронные функции также возвращают промисы, поэтому фактическое значение результата test() — это промис, который можно разрешить внутри другой асинхронной функции:
async function whatever() { // snip const response = await test(); // use response here // snip }
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3