Size: a a a

2021 May 14

Ao

Alastor of Athens in Go-go!
Для собесов на которых дают задачи на асинк
источник

w

whoami in Go-go!
Леее...
А пример задачи можно?
источник

ВС

Владимир Столяров... in Go-go!
Весь io в стандартной либе для пользователя выглядит синхронным
Из асинхронного есть разве что каналы
источник

DF

Durty Free in Go-go!
Каналы, горутины. Лучше конечно где-нить на леткоде позаниматься.
источник

Ao

Alastor of Athens in Go-go!
Ну я так же и скажу на собесе
источник

ВС

Владимир Столяров... in Go-go!
Ну под капотом это не так, конечно
источник

П

Павел in Go-go!
нужно идти на степик и пройти курс, там как раз последние задачи по асинку
источник

ВС

Владимир Столяров... in Go-go!
Можно почитать исходники пакета runtime и internal/poll
источник

RT

Rostislav Teryaev in Go-go!
😂
источник

ВС

Владимир Столяров... in Go-go!
Там много чего в комментах есть и код довольно понятный
источник

RT

Rostislav Teryaev in Go-go!
learning async in go. Hard way)
источник

ВС

Владимир Столяров... in Go-go!
Ну вот что что, а меня этот способ лучше всего и выручал
источник

З🧟

Зомби 🧟‍♂️... in Go-go!
источник

AS

Aleksey Sychev in Go-go!
  for {
   ctx, cancel := context.WithTimeout(context.Background(), time.Duration(time.Second*5))
   func() {
     defer cancel()
     time.Sleep(time.Second) // work
   }()
   <-ctx.Done()
   log.Println(ctx.Err())
 }

я видимо плохо объяснил, это не то что мне нужно. мне нужно что бы work работал не чаще чем раз в 5 секунд например
а из за того что в defer вызывается cancel он работает каждую секунду
в общ
ем стал юзеть так
 for {
   ctx, cancel := context.WithTimeout(context.Background(), time.Duration(time.Second*5))
   err := func() error {
     time.Sleep(time.Second) // work
     return errors.New("test")
   }()
   if err != nil {
     cancel()
     break
   }
   <-ctx.Done()
   log.Println(ctx.Err())
 }

спасибо
источник

AP

Alexey Palazhchenko in Go-go!
> мне нужно что бы work работал не чаще чем раз в 5 секунд

Звучит как time.Ticker без контекста
источник

с

сонная википедия... in Go-go!
звучит как debounce
источник

AP

Alexey Palazhchenko in Go-go!
источник

К🇦

Коала 🇦🇺 in Go-go!
у меня package main в ./src/cmd/server/ а пакеты в ./src/internal/pkg/<packagename>/*.go, типа как тут https://github.com/WeConnect/go-project-layout
источник

К🇦

Коала 🇦🇺 in Go-go!
А кто нибудь разбирался с работой через IDE Goland и WSL2? конкретно это https://youtrack.jetbrains.com/issue/GO-4377
источник

RL

Ragnar Lodbrok in Go-go!
Я работаю через WSL2, но у меня оно настроено криво: go стоит и на винде, и в wsl, консоль используется от wsl.
Приходится для каждого проекта делать go mod vendor, чтобы ide увидела пакеты и не подчеркивала все красным
источник