170 похожих чатов

Всем привет. Ребята, такой вопрос. Есть легаси код, который не

основан на async await. То есть выполнение каждой функции синхронно или через callback. Есть желание не меняя тип синхронной старой функции, получить в ней результат асинхронного выполнения и вернуть результат функции как раньше. Решал кто-то такую задачу?

13 ответов

18 просмотров

заверни в new Promise и когда придет результат делай resolve или reject и на саму обертку из new Promise повесь async await

kiryl-trapynin Автор вопроса

нет мыслей?

kiryl trapynin
нет мыслей?

У меня нет, потому что я не понял, что именно ты хочешь Возможно тебе поможет https://nodejs.org/dist/latest-v18.x/docs/api/util.html#utilpromisifyoriginal

Тупая Инфузория
Он хочет асинк превратить в синк

я так понял что он не хочет легаси код трогать чтобы его не править

kiryl-trapynin Автор вопроса

я хотел спросить возможно ли НЕ МЕНЯЯ вызова функции main, которая возвращала результат НЕ ПРОМИС, получить внутри main результат асинхронной операции (тот же xhr) и вернуть результат из main как и раньше, просто с учетом асинхронных данных. сам понимаю что в новой программе выстраивал бы код не так, но здесь старый код и менять его вызове во всех функциях по цепочке не самый лучший вариант. естественно я понимаю что просто это сделать не получится, поэтому и спросил решал ли кто-то похожую задачу.

kiryl-trapynin Автор вопроса

он хочет синк не превращать в асинк

kiryl trapynin
он хочет синк не превращать в асинк

*он хочет синк не превращать в асинк, но при этом пользоваться асинк

kiryl-trapynin Автор вопроса
Тупая Инфузория
*он хочет синк не превращать в асинк, но при этом ...

нет условия обязательно асинк, есть условие дождаться выполнения асинхронной операции и вернуть ее результат вместе с тем, что и возвращался и раньше. Способ подойдет любой.

kiryl trapynin
я хотел спросить возможно ли НЕ МЕНЯЯ вызова функц...

Конечно же нет. Если ты в main делаешь асинхронный вызов, это автоматически делает саму main асинхронной Если это вызов через await - функция вернёт промис. Если функция возвращает промис, тебе надо ждать его разрешения через await или .then Если это вызов чего-то с передачей колбека, то при выходе из main колбек ещё не будет вызван, результат не будет получен Есть ощущение, что ты слабо разобрался в асинхронности, и стоит попрактиковаться в ней

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта