Я пытаюсь использовать /api/stream
конечную точку сервера Drone 1.0. Эта конечная точка поддерживает HTTP-соединение открытым и просто передает новые предстоящие события, чтобы уведомить потребителя о событиях.
Я пробовал с этим фрагментом кода, используя javascript Fetch API
await fetch("https://drone.company.com/api/stream/", {
headers
})
.then(function(response) {
return response.text();
})
.then(function(data) {
console.log(data);
});
Этот код работает хорошо, но then
обратный вызов всегда вызывается после завершения запроса.
Есть ли способ получить поток тела, полученного во время обработки запроса?
ты можешь читать response.getReader()
как
let response = await fetch("https://drone.company.com/api/stream/", {
headers
});
const reader = response.body.getReader();
while(true) {
const {done, value} = await reader.read();
if (done) {
break;
}
const text = new TextDecoder("utf-8").decode(value);
console.log(`Received ${text}`)
}
нам нужно использовать, TextDecoder
поскольку он value
содержит данные Uint8Array, а не текст. Не поддерживается IE. тоже fetch
не поддерживается .
на основе https://javascript.info/fetch-progress
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения