如何退出具有通道无限循环的功能

我有这个函数可以监听 RabbitMQ 以使用消息。在某些时候,我想停止收听并关闭频道并退出该功能。


func WaitForConfirm(expectedLen int){

    count := 0

    forever := make(chan bool)


    go func() {

        for i := 0; i < 5; i++ {

            count++

            if count == expectedLen {

                // HERE I WANT TO EXIT THE FUNCTION COMPLETELY

            }

        }

    }()


    <-forever

}

哦,顺便说一句,我这样称呼这个函数:


go WaitForConfirm(2)

那么,我怎样才能停止无限循环并退出函数呢?


白衣非少年
浏览 116回答 1
1回答

慕后森

实际上,您的代码中没有无限循环,只是 chan 阻塞了您的代码。您应该将值发送给 chan 以释放执行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go