>백엔드 개발 >Golang >고루틴이 채널에 쓰지 않습니다.

고루틴이 채널에 쓰지 않습니다.

王林
王林앞으로
2024-02-06 08:30:08806검색

goroutine 未写入通道

질문 내용

처음 들어와서 아래 코드를 사용하는 데 문제가 있습니다

으아악

고루틴pdf 中从 generatefromhtml 接收信息,但是 buf에서는 값이 수신되지 않으므로 이 코드가 포함된 함수는 크기 0의 바이트를 반환합니다.

어떤 도움이라도 대단히 감사하겠습니다. 미리 감사드립니다


정답


이 코드는 본질적으로 동기식입니다. 핸들러는 바이트 조각을 생성하고 c.blob 메서드를 사용하여 해당 바이트가 준비되면해당 조각을 반환해야 합니다.

게시된 코드는 고루틴에서 작업을 시작하고 작업이 완료될 때까지 기다리지 않고 널 바이트 슬라이스를 반환합니다.

고루틴을 제거하면 이 문제를 해결할 수 있습니다.

으아악

이 코드의 유일한 문제는 모든 데이터를 메모리에 로드하는 것이지만, pdf.generatefromhtml 返回 []byte 필요한 경우 pdf.generatefromhtml 以返回 io.reader를 업데이트하고 c.Stream .

을 사용하여 이를 개선할 수 있습니다.

위 내용은 고루틴이 채널에 쓰지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제