Создание контекстной копии без распространения отмены. Этот сценарий происходит, например, когда вы хотите выполнить асинхронную задачу после ответа на HTTP -запрос, который может пережить исходный контекст. Тем не менее, доступно более простое и более управляемое решение. Эта функция позволяет создавать новый контекст, который наследует все значения от исходного контекста, но невосприимчиво к его отмене:
импорт "контекст" // Без канцеляции возвращает контекст, который никогда не отменяется. func без cancel (ctx context.context) context.context { return context.withvalue (context.background (), context.nocancel {}, struct {} {}) }для использования без точки Результат: = DoStuff (CTX) NewContext: = context.withoutCancel (CTX) Go func () { dosomethingelse (newContext) } () вернуть результат }
теперь новый Goroutine будет работать с копией исходного контекста, который не будет отменен, когда исходный контекст. Это обеспечивает гибкость и контроль, необходимые для управления продолжительностью продолжительности асинхронных задач.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3