@FastSpace said in Проблема при многопоточной работе с ресурсом:
@sayado колличество элементов в ресурсе. Меньше чем x, ждать пока появится больше
?? как мне "ждать пока появится больше"?
Здравствуйте, я, видимо, такой криворукий, но пытаюсь исполнить код JavaScript при каждой загрузке страницы, использую соответствующую опцию, в окне сценария для теста записываю простейшее (для теста работоспособности) [[NEW_VARIABLE]] = "value"; То есть переназначаю уже объявленную переменную. После загрузки любой страницы никакой код JS не работает, переменная не переназначается, код не исполняется. Версия BAS 22.4.0. В чем может быть проблема?
@NikitaKireev Из браузера нельзя изменять переменные БАС, можно только передать в него значения переменных БАС.
@UserTrue Спасибо за ответ, я еще пытался с alert экспериментировать и console.log. Ни один из методов не срабатывает. Если делать явные ошибки в синтаксисе - тоже никаких сообщений об ошибках, будто код вообще не исполняется.
@NikitaKireev Ну alert разумеется не сработает, а все остальное работает. Вот пример
1.xml

@UserTrue я думал, что это поле как бы встраивает javascript внутрь страницы, а не является его урезанной версией. У меня есть javascript, выполняющийся в tempermonkey. Обычный js. Мне ответил автор в комментариях youtube, что я могу исполнить код через данную опцию, а получается так, что одно он может, другое не может и вносятся неаонятные ограничения вплоть до невозможности воспользоваться базовыми функциями javascript. Код, естественно, мой не работает. В нем нет алертов. Самое главное, что bas не выводит никаких сообщений об ошибках и непонятно как производить отладку, чтобы понять сработало ли хоть что-нибудь.
@NikitaKireev Нету ни каких граничений, помимо js при загрузке страница, можно также выполнить свой js в любое время на странице. Скорей всего ваш код плохо написан, тк бас преобразуют его в одну строку и если не везде стоят ; то код может стать не валидным
@UserTrue понял, спасибо за ответ. Отсутствие сообщений об ошибках сделает отладку сложным занятием, надеюсь в будущем появится вывод результата работы скрипты в лог. Последний вопрос, могу ли я в обход bas оттестировать скрипт где-нибудь, чтобы была такая же строгость к синтаксису? Tampermonkey действительно нечувствителен к наличию или отсутствию ";". Вопросы, конечно, новичковские. Я на JavaScript не пишу, поэтому и вопросы соответствующие уровню)
@NikitaKireev откройте сайт и пишите код через F12 - Console, а потом переносите в BAS
@Oyasumi-Punpun В браузерной консоли может работать, а через бас нет. Из-за причины описанной выше.
Например вот плохой код, который так-то работает
function hi(){
console.log('hi');
}
(1==2)
Но в БАС он вставится как
function hi(){console.log('hi');} (1==2)
А это уже ошибка так получается, что мы пытаемся вызвать функцию "на месте"
Вот кстати его уже имеет смысл закинуть в консоль и поймать ошибки
@NikitaKireev said in Проблема с исполнением кода JS:
@UserTrue Тема закрыта, спасибо большое за помощь. Особенность с строчной интерпретацией кода и связанными с этими ошибками уяснил. Большое спасибо!
https://community.bablosoft.com/topic/949/часто-задаваемые-вопросы/2
"Если JavaScript код выполняется в браузере, но не выполняется в BAS"
https://community.bablosoft.com/topic/4718/консоль/6