@hvrsh
Проверил, 5/5 все соответствует.
Попробуйте поставить минимальную дату добавления - 15 дней.
fc2b4ef3-c305-4d1b-b24e-a56aff4e9113-image.png
Несколько get-запросов в одном коде
-
В коде никак не могу прописать сразу несколько запросов через http-клиент одновременно. Беда с этими асинхронными функциями...
Скрипт будет однопоточный, так что функционал таков, что делать запросы можно, однако ж всё равно проходит только первый. Второй выполняется и скрипт вылетает. Что в одном блоке кода, что если разнести по разным блокам.
Мои действия:
Вызов первый:switch_http_client_main() http_client_get2('https://vk.com/select_ajax.php?act=a_get_countries',{method:("GET"),headers:("")})! VAR_SAVED_CONTENT = http_client_encoded_content("auto")Вызов второй чуть ниже:
_switch_http_client_main() http_client_get2('https://vk.com/select_ajax.php?act=a_get_cities&country='+country+'&str=$$$***',{method:("GET"),headers:("")})! var content = http_client_encoded_content("auto")После второго вызова приходит правильный ответ, что видно по анализатору http-траффика, но весь скрипт падает, никакие отладки не помогают - скрипт крашится ещё до того, как успеваю глянуть в [[LAST_ERROR]].
Пробовал оборачивать асинхронные действия в конструкцию типа
_if(true, function(){ _call(Вызов http и get-запрос)! })!Но такая конструкция не верна, так как ничего не возвращает.
Куда копать? Кому удалось запустить в исходном коде запросы?
-
_if(true, function(){ http_client_get2(....)! })! -
@uraabk да, переписал код, и у меня заработало. Оказывается, проблема была не в вызовах, а совсем в другой части кода. Ругался на то, что я делаю вызво в цикле с условием if:
var country_search = asf.res("country") if (country_search == "Search by cityes"){ _if(true, function(){ _switch_http_client_main() http_client_get2('https://vk.com/select_ajax.php?act=a_get_cities&country='+country_id+'&str=$$$***',{method:("GET"),headers:("")})! VAR_CITYES = http_client_encoded_content("auto") })! }Вытащил вызов за пределы цикла - вуаля, всё работает.
Кто-нибудь знает почему так?
-
@pragmatik Я Вам даже скажу, что и этот Ваш код неверный
да, переписал код, и у меня заработало. Оказывается, проблема была не в вызовах, а совсем в другой части кода. Ругался на то, что я делаю вызво в цикле с условием if:
var country_search = asf.res("country") if (country_search == "Search by cityes"){ _if(true, function(){ _switch_http_client_main() http_client_get2('https://vk.com/select_ajax.php?act=a_get_cities&country='+country_id+'&str=$$$***',{method:("GET"),headers:("")})! VAR_CITYES = http_client_encoded_content("auto") })! }Вытащил вызов за пределы цикла - вуаля, всё работает.
Кто-нибудь знает почему так?
в простом if нельзя вызывать асинхронную функцию БАС
-
@pragmatik Проще наверное ответить "потому что" ))) Просто даже если писать на чистом js, то результат будет такой же, чтобы работать с асинхронными вызовами там и существуют калбеки, промисы, генераторы и наконец await/async. В бас же реализован свой api с которым и надо работать, тк этого его внутренние функции и использовать с ними например промисы не получится.
