 $.ajax({
                url: host,
                data: data,
                type: "POST",
                dataType: "json",
                headers: headers,
                complete: () => {
                    let message = ai.lastMessage(chat);
                    if (!chat.loading || message.id !== lastId) {
                        return;
                    }
                    chat.lastChunkIndex = 0;
                    chat.loading = false;
                    lastMessage.completed = true;
                    ai.saveData();
                },
                success: function (res) {
                    let message = ai.lastMessage(chat);
                    if (!chat.loading || message.id !== lastId) {
                        return;
                    }
                    if (res && res.error && res.error.message) {
                        ai.lastMessage(chat).choices[0].delta.content = res.error.message;
                    } else if (res && res.data && res.data[0] && res.data[0].url) {
                        ai.lastMessage(chat).choices[0].delta.content = `![](${res.data[0].url})`;
                    } else {
                        console.log(res);
                    }
                },
                xhr: this.xhrOnProgress(function (event) {
                    let message = ai.lastMessage(chat);
                    // 已经取消
                    if (!chat.loading || message.id !== lastId) {
                        return;
                    }
                    const xhr = event.target;
                    const {responseText} = xhr;
                    let thunks = responseText.substring(chat.lastChunkIndex);
                    chat.lastChunkIndex = responseText.length;
                    const arr = thunks.split("\n");
                    arr.forEach(function (chunk) {
                        if (chunk === "") return;
                        chunk = chunk.substring(6).trim();
                        if (chunk === "" || chunk === "[DONE]") return;
                        tr






// uni.request({
        //   url: 'https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些',
        //   method: 'GET',
        //   responseType: 'arraybuffer',
        //   success: res => {
        //     console.log(res);
        //   },
        //   fail: err => {
        //     // 处理请求失败
        //     console.error(err);
        //   }
        // });
        
        // let that = this;
        // this.talkList.push({
        //   "id":new Date().getTime(),
        //   "content":'',
        //   "type":2,
        //   "pic":"/static/avatar.png"
        // });
        // var xhr = new XMLHttpRequest();
        // xhr.open('GET', 'https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些', true);  // 设置请求方法、URL 和是否异步
        
        // xhr.setRequestHeader('Content-Type', 'application/json');  // 设置请求头
        
        // xhr.onreadystatechange = function() {
        //   console.log('请求成功:', xhr.responseText);
        //   that.talkList[that.talkList.length-1].content += xhr.responseText;
        // };
        // xhr.send();
        
        // fetch('https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些')
        //   .then(response => response.body)
        //   .then(data => {
        //     // 在这里处理返回的数据
        //     console.log(data);
        //   })
        //   .catch(error => {
        //     // 在这里处理请求错误
        //     console.error(error);
        //   });
        
        // let that = this;
        // this.talkList.push({
        //   "id":new Date().getTime(),
        //   "content":'',
        //   "type":2,
        //   "pic":"/static/avatar.png"
        // });
        // axios({
        //   method: 'get',
        //   url: 'https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些',
        //   responseType: 'text'
        // })
        // .then(response => {
        
        //   response.data.on('data', (chunk) => {
        //     // 处理流数据的逻辑
        //     console.log(chunk);
        //   });
        
        //   response.data.on('end', () => {
        //     // 数据接收完成的逻辑
        //     console.log('完成');
        //   });
        
        // }); 
        // fetch('https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些') // 通过fetch获取一个Response对象
        //   .then(response => response.body.getReader()) // 获取ReadableStreamDefaultReader对象
        //   .then(reader => {
        //     function read() {
        //       return reader.read().then(({ done, value }) => {
        //         if (done) {
        //           console.log('读取完成');
        //           return;
        //         }
        
        //         const decoder = new TextDecoder();
        //         console.log(decoder.decode(value));
        //         that.talkList[that.talkList.length-1].content += decoder.decode(value);
        //         // console.log(value); // 输出读取到的数据
        //         // 继续读取下一块数据
        //         return read();
        //       });
        //     }
        
        //     return read(); // 开始读取数据
        //   })
        //   .catch(error => console.error(error));
        // return ;