бджовелін⁂
почему это?
Что почему? Почему котлин является оф языком для андроида и на нем основная завязка? А потом уже бекенд можно писать на котлине
Denis
с чего я начал свой вопрос?
Я помню твой вопрос. Не надо намеков — скажи прямо
Vitalii
С чего ты так решил? Await же
как внутри асинх функ отлавливать ошибки? а не как куски кода оборачивать в другие асинх функции
Denis
Я отлавливаю ошибки внутри асинхронных функций
Sergey
Что почему? Почему котлин является оф языком для андроида и на нем основная завязка? А потом уже бекенд можно писать на котлине
то есть то что его принял гугл для андройда означает что больше на нём нечего писать? Логика огонь. Вы в курсе истории языка?
Vitalii
Я отлавливаю ошибки внутри асинхронных функций
вот я тоже так делал, но задался вопросом, а что если есть другой более элегантный способ
Sergey
Ты внимательно прочитай что я пишу. Я не писал, что нельзя..
вся экосистема Java доступна для Котлина, с небольшими обвязками может быть. Так и в чём проблема то? Кложа может быть и менее совместима относительно Котлина, но это другое
Vitalii
Есть. Первый мой пример
этот у тебя первый? https://github.com/Piterden/chessbot/blob/master/src/handlers/inlineJoin/index.js
Vitalii
Да
кинь сюда код где ты ловишь ошибку без асинхронной обертки
Vitalii
Да
может я чет не вижу
Denis
кинь сюда код где ты ловишь ошибку без асинхронной обертки
Не понимаю что ты хочешь? Мне вломак искать. Попробуй поиском по моему github
Denis
Там так же всё
Igor
вся экосистема Java доступна для Котлина, с небольшими обвязками может быть. Так и в чём проблема то? Кложа может быть и менее совместима относительно Котлина, но это другое
Оно то доступно, только в прод котлин очень медленно идёт в бэке. Ну и котлин пошёл своим путем, скоро совместимости с джавой не будет 🙂
Promise<>
https://bl.ocks.org/ravi4j/9d4871f11fa959fa6ded19a30d4b3227 возможно ли на этих nodes налепить png, jpeg?
Denis
у тебя все в async обертках
https://github.com/Piterden/constructor-decorator/blob/master/index.js
Igor
то есть разница намного заметнее чем OCaml/Reason?
Там разница будет на уровне реализации потоков
Vitalii
https://github.com/Piterden/constructor-decorator/blob/master/index.js
чет я тут не вижу ни одной асинх. функ.
Promise<>
А почему нет?
background-image?
Vitalii
https://github.com/Piterden/constructor-decorator/blob/master/index.js
так вопрос состоял в том чтобы внутри асинхронной функции ловить ошибки, и не оборачивать все подряд в асинхр функц, теперь ты понял о чем я?
Vitalii
Denis
Что значит оборачивать?
Denis
да
Я не прикалываюсь. Правда не понимаю что ты имеешь ввиду
Denis
Как это оборачивать?
Denis
Я ничего не оборачиваю
Denis
И я ловлю ошибки
Denis
Что тебе не нравится?
Vitalii
Что значит оборачивать?
представь что у тебя ctx.db синхронная, как ты будешь ловить там ошибку если она вызывается внутри async func? const game = await ctx.db(&#39;games&#39;) .where(&#39;inline_id&#39;, ctx.callbackQuery.inline_message_id) .first() .catch(debug)
Vitalii
try { ctx.db() } catch (error) { }
та йоптель, try catch не ловит такие ошибки
Denis
JSON.parse() — только так
Denis
Чего бы ему не ловить то их?
Sergey
та йоптель, try catch не ловит такие ошибки
зато вот такие ловит try { await ctx.db() } catch (error) { }
Vitalii
зато вот такие ловит try { await ctx.db() } catch (error) { }
даже если ctx.bd() не возвращает промис?
Denis
даже если ctx.bd() не возвращает промис?
Похуй на промис вообще. Он ловит throw
Denis
Vitalii
не ловит
Sergey
уточнение: оно ловит и ошибку из промиса и синхронную ошибку
Vladislav
та йоптель, try catch не ловит такие ошибки
Если ты о нетворк ошибке, то она код не ломает и по большей части похуй
Denis
не ловит
Тут поймал
Denis
Тут нет
Vladislav
не ловит
Я тебе даже больше, скажу, это работает без промисов
Denis
Да промисы тут вообще не при чем
Denis
try/catch был задолго до промисов
Vitalii
async() =&gt; { try { if (!smsCode) throw new Error(&#39;Enter your sms code&#39;); } catch (e) { res.send(e); } }
Vitalii
smsCode = undefined
Алексей
Пиздец вы конечно задрачиваетесь с async, попробуйте callback использовать и жизнь вам будет казаться проще))
Denis
Vladislav
Пиздец вы конечно задрачиваетесь с async, попробуйте callback использовать и жизнь вам будет казаться проще))
Пиздец вы конечно задрачиваетесь с этими повозками, юзайте лошадей и жизнь будет проще (c) 100 лет назад
Vitalii
(async () =&gt; { try { if (!smsCode) throw new Error(&#39;Enter your sms code&#39;); } catch (e) { console.log(e); } })(); вот так работает...
Vitalii
жаль не могу сюда код кинуть циликом(((
Denis
Кинь как не работает
Vitalii
А как нет?
но отличий по логике нету
Denis
Кусок кинь
Denis
И она не выполняется
Vitalii
в респонсе пусто catch (e) { res.status(400).send(e)) }
Denis
Функция то вызывается?
Vitalii
Кусок кинь
в теле делаю try { if (!smsCode) throw new Error(&#39;Enter your sms code&#39;); ...
Vitalii
Функция то вызывается?
ответ есть но в error пусто
Vladislav
в теле делаю try { if (!smsCode) throw new Error(&#39;Enter your sms code&#39;); ...
Можешь каждый оператор по отдельности кидать, слишком интуитивно ведь
Denis
в теле делаю try { if (!smsCode) throw new Error(&#39;Enter your sms code&#39;); ...
Отличие между твоим и моим кодом — я вызываю функцию, а ты нет