Size: a a a

2021 April 01

A

Alexander in ru.nim.talks
А если у финкции async не написать?
источник

VB

Vladimir Berezenko in ru.nim.talks
Alexander
Да, про seq[] понятное но он же в ref фьючи, который может быть nil
Сама футура может быть nil, но вывод функции после await не future, а её значение, которое уже не может быть nil
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Alexander
А если у финкции async не написать?
Тогда самому надо, да ещё и итераторы самому пилить
источник

A

Alexander in ru.nim.talks
MIT/Yardanico (alt)
Тогда самому надо, да ещё и итераторы самому пилить
Надо или на Нил проверять или инициализировать?
источник

A

Alexander in ru.nim.talks
По идее тогда nil может в await попасть, хз как обратается
источник

VB

Vladimir Berezenko in ru.nim.talks
асинхронщина в nim построена на макросе, который фактически генерирует итератор, где каждый await превращается в yield, и функцию которая по этому итератору итерирует. если хочется самому обрабатывать это всё - надо копипастить и разбираться как оно работает.
источник

A

Alexander in ru.nim.talks
Не, не то что хочется, просто хочется понять. Через итератор это уже объясняет немного что nil там не может оказаться. Но есть ещё wait for
источник

VB

Vladimir Berezenko in ru.nim.talks
wait for это одноразовый прогон main loop. итератор и прочее никуда оттуда не деваются...
источник

VB

Vladimir Berezenko in ru.nim.talks
ну и становится понятно, почему нельзя делать discard для await. компилер может там сурово наоптимизировать :)
источник

A

Alexander in ru.nim.talks
Ага, логично. Да, в общем интересно как там склеится итератор с функцией без асинк, если такое вообще возможно
источник

VB

Vladimir Berezenko in ru.nim.talks
Alexander
Ага, логично. Да, в общем интересно как там склеится итератор с функцией без асинк, если такое вообще возможно
ничонепонял. ты можешь легко вызвать из асинхронной ф-ции синхронную и тебе за это ничего не будет :)
источник

A

Alexander in ru.nim.talks
Vladimir Berezenko
ничонепонял. ты можешь легко вызвать из асинхронной ф-ции синхронную и тебе за это ничего не будет :)
Я могу сделать функцию, которая возвращает фьючу, но не имеет прагмы асинк?
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Конечно
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Макрос просто все трансформации делает за тебя
источник

VB

Vladimir Berezenko in ru.nim.talks
Alexander
Я могу сделать функцию, которая возвращает фьючу, но не имеет прагмы асинк?
Можешь, но зачем?
источник

A

Alexander in ru.nim.talks
Vladimir Berezenko
Можешь, но зачем?
Чтобы знать что будет!
источник

VB

Vladimir Berezenko in ru.nim.talks
Ничего не будет. Вернётся future и всё
источник

KD

Kitsune Digital in ru.nim.talks
хм
как думаете, запихивать все события в виде футур в последовательность, а затем по таймеру делать await all — нормальный подход?
источник

KD

Kitsune Digital in ru.nim.talks
или я тут какие-то проблемы с потерянными эвентами получу?
источник

G

Gabben in ru.nim.talks
Kitsune Digital
хм
как думаете, запихивать все события в виде футур в последовательность, а затем по таймеру делать await all — нормальный подход?
А в чем смысл таймера?
источник