Ich habe einige gleichzeitige Code, der zwei verschiedene Timeout-Intervalle hat, eine statische und eine dynamische. Ich möchte auf beide gleichermaßen reagieren. Dies ist der Kern davon:Wie reagiere ich auf Eingaben von mehreren Kanälen in Go?
select {
case <-time.After(staticTimeoutInterval):
doSomething()
case <-time.After(dynamicTimeoutInterval):
doSomething()
}
Gibt es eine Möglichkeit, doSomething() nur einmal zu schreiben? Es ist seltsam, dass select
in dieser Hinsicht nicht so flexibel ist wie switch
.
Sie könnten 'timeout: = sTimeout; if dTimeout
twotwotwo