收藏
回答

小程序 执行了10个request() 第11次就不执行request?

if (requestTask) {
    console.log('requestTask.abort()')
    requestTask.abort();
    requestTask = null;
}
requestTask = uni.request({
    url: getUrl(`assistants/${assistantSid}/text`),
    method: 'POST',
    data: data,
    responseType: "arraybuffer",
    enableChunked: true,
    header: {
        'content-type': 'application/json',
        'Authorization': 'Bearer ' + uni.getStorageSync("access_token")
    },
    success: () => {
        console.log('stream finished');
    },
    fail: (err) => {
        isChat.value = false;
        chatMessagesIndex.value = undefined;
        showModal(err.message);
        nextTick(() => {
            handleChatSuccess();
        })
        console.log("request fail", err);
    },
});

let success = (response) => {
    let resultText = arrayBufferToUTF8String(response.data);
    if (resultText) {
        resultText = resultText.trim().split("\n\n");
        resultText.forEach(item => {

            if (item.indexOf('event: end') > -1) {
                nextTick(() => {
                    handleChatSuccess();
                    requestTask.offChunkReceived(success)
                    setTimeout(() => {
                        requestTask.abort();
                    }, 100)
                })
            } else {
                if (item.match(/\{.*\}/)) {
                    // 提取JSON部分
                    const jsonStr = item.match(/\{.*\}/)[0];
                    const list = JSON.parse(jsonStr);
                    handleChatContent(list.content);
                }
            }
        })
    }
}

requestTask.onChunkReceived(success);

是个ai聊天 
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容