основан на async await. То есть выполнение каждой функции синхронно или через callback. Есть желание не меняя тип синхронной старой функции, получить в ней результат асинхронного выполнения и вернуть результат функции как раньше. Решал кто-то такую задачу?
заверни в new Promise и когда придет результат делай resolve или reject и на саму обертку из new Promise повесь async await
нет мыслей?
У меня нет, потому что я не понял, что именно ты хочешь Возможно тебе поможет https://nodejs.org/dist/latest-v18.x/docs/api/util.html#utilpromisifyoriginal
Он хочет асинк превратить в синк
я так понял что он не хочет легаси код трогать чтобы его не править
волшебства хочет, да
я хотел спросить возможно ли НЕ МЕНЯЯ вызова функции main, которая возвращала результат НЕ ПРОМИС, получить внутри main результат асинхронной операции (тот же xhr) и вернуть результат из main как и раньше, просто с учетом асинхронных данных. сам понимаю что в новой программе выстраивал бы код не так, но здесь старый код и менять его вызове во всех функциях по цепочке не самый лучший вариант. естественно я понимаю что просто это сделать не получится, поэтому и спросил решал ли кто-то похожую задачу.
он хочет синк не превращать в асинк
*он хочет синк не превращать в асинк, но при этом пользоваться асинк
нет условия обязательно асинк, есть условие дождаться выполнения асинхронной операции и вернуть ее результат вместе с тем, что и возвращался и раньше. Способ подойдет любой.
Конечно же нет. Если ты в main делаешь асинхронный вызов, это автоматически делает саму main асинхронной Если это вызов через await - функция вернёт промис. Если функция возвращает промис, тебе надо ждать его разрешения через await или .then Если это вызов чего-то с передачей колбека, то при выходе из main колбек ещё не будет вызван, результат не будет получен Есть ощущение, что ты слабо разобрался в асинхронности, и стоит попрактиковаться в ней
Обсуждают сегодня