ReadableStream: потоковый ответ API и чат на сайте
response.body.getReader и декодирование чанков.
У `fetch` ответ с `Content-Type: text/event-stream` или chunked JSON читают через `response.body.getReader()` — UI обновляется по мере прихода токенов.
Декодируйте через `TextDecoder` с `{ stream: true }` для многобайтовых UTF-8 границ.
- ReadableStream — MDN — Потоки в браузере.
- Streams API concepts — MDN — reader и writer.
Ошибки
При abort закрывайте reader — иначе утечка соединений в SPA.