bayraktugrul / go-await

Synchronizing asynchronous operations in Go (golang)
MIT License
4 stars 0 forks source link

Standart yol: WaitGroup ve Context #1

Closed Winens closed 1 month ago

Winens commented 1 month ago

Go'da await yok çünkü async işlemleri bekleyen bir Promise yok. Fakat bunun için kullanılan doğru yöntem sync.WaitGroup'tur (https://pkg.go.dev/sync#example-WaitGroup). Kaç adet goroutine var ise o kadar gruba eklenir ve her goroutine'in bitemsini wg.Wait ile bekleyebilirsiniz. Timeout için ise go'da heryerde kullanılan context'i kullanmalısınız. Contextler timeout özelliği taşır ve timeoutexceed hatalarını daha iyi yönetebilirsiniz (https://pkg.go.dev/context#WithTimeout).

bayraktugrul commented 1 month ago

Selamlar, bilgilendirme için teşekkürler. Proje Go'da async await yapısı olduğunu iddaa etmiyor, README içerisinde yer aldığı gibi Java'da test projelerinde sıklıkla kullanılan https://github.com/awaitility/awaitility projesinin yaptığı işi vaad ediyor. Şu an go-await tek bir işlemi bekleyebiliyor. Bundan dolayı waitgroup'a gerek yok, tek bir channel ile işi hallediyor. Birden çok işlemi beklemesi için ekleme yapma planım vardı, dediğiniz şekilde ilerleyecektim onda da. Teşekkürler, issue'yu kapatıyorum.