[英]Getting timeout value from Go's context
如何获取上下文中为超时设置的持续时间。
例子:
func f(ctx context.Context) {
// get ctx timeout value
}
func main() {
ctx, cancel := context.WithTimeout(context.Background(),2*time.Second)
defer cancel()
f(ctx)
}
如何从函数f
获取持续时间2*time.Second
?
如果立即调用 func f ,那么它超时之前的时间就是刚刚设置的时间,因此您可以通过查看截止日期来获取它
package main
import (
"context"
"fmt"
"time"
)
func f(ctx context.Context) {
deadline,_:=ctx.Deadline()
fmt.Println(time.Until(deadline))
// get ctx timeout value
}
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
f(ctx)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.