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

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

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

13 ответов

8 просмотров

заверни в 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 колбек ещё не будет вызван, результат не будет получен Есть ощущение, что ты слабо разобрался в асинхронности, и стоит попрактиковаться в ней

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Добрый день, чат. Мне в очередь из других RabbitMQ по shovel валятся метрики в формате текста для Prometheus. Помогите пожалуйста подружить RabbitMQ и Prometheus, чтобы он (...
Aleksey
4
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Карта сайта