|
|
@@ -15,7 +15,12 @@
|
|
|
|
|
|
Передача данных от обработчика к обработчику требует сохранения промежуточного состояния -- контекста. Контекст можно расширять или сужать, но по частям он смысла не имеет.
|
|
|
|
|
|
-Контекст -- весь необходимый набор данных для выполнени операций.
|
|
|
+Контекст -- весь необходимый набор данных для выполнения операций.
|
|
|
+
|
|
|
+
|
|
|
+Кроме полезных данных -- контекст содержит сопровождающие данные, например метрики.
|
|
|
+
|
|
|
+Также контексты в подавляющем большинстве случаев -- связаны между собой отношением `предок-потомок`, и позволяет прокидывать сверху вниз наборы данных и событий.
|
|
|
|
|
|
## Зачем нужно
|
|
|
|
|
|
@@ -35,6 +40,15 @@ ctxBg := context.Background()
|
|
|
|
|
|
[Почитать про API](https://pkg.go.dev/context@go1.20.7)
|
|
|
|
|
|
+Обратить внимание:
|
|
|
+
|
|
|
+- сработка контекста по условию;
|
|
|
+- контекст с предельным моментом времени;
|
|
|
+- проброс в контекст объектов по ключу;
|
|
|
+- контекст `TODO` (когда ещё неизвестно какой именно контекст нужен).
|
|
|
+
|
|
|
+Также следует внимательно посмотреть на тип `type Context interface{}` -- поскольку это интерфейс -- открываются широкие возможности по реализации свои специфичных контекстов, которые будут совместимы с контекстом из стандартной библиотеки.
|
|
|
+
|
|
|
### Дочерний контекст с простой отменой
|
|
|
|
|
|
Дочерний контекст с простой отменой. Он используется тогда ,когда время выполнения операции *не важно*.
|