数据的流式获取

69 阅读1分钟
async function request() {
    try {
        // 发起 HTTP 请求
        const response = await fetch('api');

        // 检查响应状态
        if (!response.success) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }

        // 获取响应体的 Reader
        const reader = response.body.getReader();

        // 循环读取数据流
        while (true) {
            // 读取当前流
            const { done, value } = await reader.read();
            
            // 如果数据读取完毕,退出循环
            if (done) break;

            // 创建解码器对象
            const decoder = new TextDecoder('utf-8');

            // 对数据进行解码
            const decodedString = decoder.decode(value);

            // 输出解码后的数据
            console.log('数据-->', decodedString);
        }
    } catch (error) {
        console.error('请求失败:', error);
    }
}

// 调用函数
request();