Не работает расширение против callback hell через комментарий /*async!*/
-
Помнится ранее в темах обсуждалось что
!
и/*async!*/
это синонимы с версии 16, что очень удобно для редактирования кода в IDE без красных простыней:
https://community.bablosoft.com/topic/792/расширение-против-callback-hell/22
https://community.bablosoft.com/topic/10824/поддержка-javascript-правильно-добавитьПопробовал на своем коде и это не работает.
Например проект с одним действием выполнить код в котором одна строкаload("google.com")/*async!*/
или
sleep(1000)/*async!*/
Выдает ошибку
Thread #1 : Callback is empty. Did you forget to use '!' after function?
Т.е. в данном случае не сработало расширение и не подставило коллбэк функцию.
Либо я что то неправильно делаю, либо комментарий/*async!*/
был заменен на какой то другой либо вообще выпилен из актуальных версий. Т.к. доступа к исходникам сейчас не имею, прошу подсказать может кто то в курсе про эту тему либо это баг.
-
@totorid814 said in Не работает расширение против callback hell через комментарий /*async!*/:
Помнится ранее в темах обсуждалось что
!
и/*async!*/
это синонимы с версии 16, что очень удобно для редактирования кода в IDE без красных простыней:
https://community.bablosoft.com/topic/792/расширение-против-callback-hell/22
https://community.bablosoft.com/topic/10824/поддержка-javascript-правильно-добавитьПопробовал на своем коде и это не работает.
Например проект с одним действием выполнить код в котором одна строкаload("google.com")/*async!*/
или
sleep(1000)/*async!*/
Выдает ошибку
Thread #1 : Callback is empty. Did you forget to use '!' after function?
Т.е. в данном случае не сработало расширение и не подставило коллбэк функцию.
Либо я что то неправильно делаю, либо комментарий/*async!*/
был заменен на какой то другой либо вообще выпилен из актуальных версий. Т.к. доступа к исходникам сейчас не имею, прошу подсказать может кто то в курсе про эту тему либо это баг.Процитирую разработчика:
Писать такой код крайне не рекомендуется. Под "такой" я имею ввиду писать код целиком с использованием внутренних расширений БАС. Это приводило не раз и приведет в вашем случае к ошибкам, которые очень трудно выловить и исправить.
так как ни до кого не доходит с первого раза, у меня есть ещё один ответ разработчика по этому вопросу:
Я могу только повторить. Писать используя данный функционал не рекомендуется. Это неизбежно приведет к ошибкам, которые редко повторяются и исправляться поддержкой не будут. Если нужно писать код на js, используйте node.js
-
Писать такой код крайне не рекомендуется. Под "такой" я имею ввиду писать код целиком с использованием внутренних расширений БАС. Это приводило не раз и приведет в вашем случае к ошибкам, которые очень трудно выловить и исправить.
Это понятно, никто не собирается весь код писать на JS. Но ранее обсуждалось что
/*async!*/
это эквивалент!
Если смотреть исходники здесь https://github.com/bablosoft/BAS/blob/955f5a41bd004bcdd7d19725df6ab229b911c09f/Engine/preprocessor.cpp то так оно и есть, эта строка кода делает это:
Res = Res.replace(")/*async!*/",")!");
но на гитхабе они не обновлялись уже несколько лет, и как сейчас там дела обстоят непонятно. В новостях по всем релизам не нашел информации что это было выпилено, поэтому и спрашиваю.
Вопрос простой эта возможность выпилена из BAS на данный момент или же изменена? Можно как то получить доступ к текущим исходникам preprocessor.cpp не покупая платную версию?
-
@totorid814 said in Не работает расширение против callback hell через комментарий /*async!*/:
preprocessor.cpp
Там есть строка Res = Res.replace(")/async!/",")!");
Но это вроде не работает, весь код не читал ибо не надо )))
-
@totorid814 said in Не работает расширение против callback hell через комментарий /*async!*/:
Res = Res.replace(")/*async!*/",")!");
Данная строка была удалена из кода в апреле этого года, с версиями до 22.6.0 всё должно работать.