$.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 ;