Как использовать request.Context вместо CloseNotifier? - PullRequest
0 голосов
/ 26 февраля 2019

Я использую CloseNotifier в своем приложении, в коде, который выглядит следующим образом

func Handler(res http.ResonseWriter, req *http.Request) {
    notify := res.(CloseNotifier).CloseNotify()

    someLogic();
    select {
        case <-notify:
            someCleanup()
            return;
        default:
    }
    someOtherLogic();
}

Я заметил, что CloseNotifier устарел. Из исходного кода :

// Deprecated: the CloseNotifier interface predates Go's context package.
// New code should use Request.Context instead.

Однако я не уверен, как именно использовать Request.Context именно здесь.

1 Ответ

0 голосов
/ 26 февраля 2019

Это кажется довольно простым на самом деле. Из этого поста :

func Handler(res http.ResonseWriter, req *http.Request) {
    ctx := req.Context()

    someLogic();
    select {
        case <-ctx.Done():
            someCleanup(ctx.Err())
            return;
        default:
    }
    someOtherLogic();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...