fetch
specification은 읽을 수있는 스트림 Body
이 처음에는 false
으로 설정된 Body.bodyUsed
플래그를 포함하고 있으며 모든 구문 분석 방법을 호출하여 true
으로 설정되어 있다고 명시합니다. Body 객체를 가져 오는 것이 왜 한 번 밖에 읽을 수 없습니까?
fetch('/some/path', (res) => {
// res.body.bodyUsed === false
res.json();
// res.body.bodyUsed === true
});
다시 한 번 res.json()
또는 res.text()
같은 메소드를 호출하려고하면
다음은 예입니다.
질문은 : 왜 그 동작이 사용됩니까? 왜 읽을 수있는 스트림을 원하는만큼 여러 번 파싱 할 수 있습니까? 나는 그 문제에 대해 아무런 설명도 찾지 못했다.
추신. Chrome (및 다른 브라우저)에서이 플래그는 res.body.locked
으로 액세스 할 수 있습니다.
를 사용하여 한 번 이상
Response.body
자세한 내용을보실 수 있습니다 - https : //로 개발 .mozilla.org/kor-US/docs/Web/API/Response/clone –본문이'res' 개체에 저장되어 있어야합니다. – Barmar
@ JaromandaX 예,하지만 다음 논리적 인 질문에 답을주지 못합니다 : 왜 처음에 그것을 제한하고 대신에'clone()'을 구현해야합니다. –