Merge pull request #5611 from ConnectAI-E/feature/tauri-fetch-update
make sure get request_id before body chunk
This commit is contained in:
commit
96273fd75e
|
@ -28,7 +28,8 @@ export function fetch(url: string, options?: RequestInit): Promise<any> {
|
|||
body = [],
|
||||
} = options || {};
|
||||
let unlisten: Function | undefined;
|
||||
let request_id = 0;
|
||||
let setRequestId: Function | undefined;
|
||||
const requestIdPromise = new Promise((resolve) => (setRequestId = resolve));
|
||||
const ts = new TransformStream();
|
||||
const writer = ts.writable.getWriter();
|
||||
|
||||
|
@ -47,7 +48,8 @@ export function fetch(url: string, options?: RequestInit): Promise<any> {
|
|||
}
|
||||
// @ts-ignore 2. listen response multi times, and write to Response.body
|
||||
window.__TAURI__.event
|
||||
.listen("stream-response", (e: ResponseEvent) => {
|
||||
.listen("stream-response", (e: ResponseEvent) =>
|
||||
requestIdPromise.then((request_id) => {
|
||||
const { request_id: rid, chunk, status } = e?.payload || {};
|
||||
if (request_id != rid) {
|
||||
return;
|
||||
|
@ -60,7 +62,8 @@ export function fetch(url: string, options?: RequestInit): Promise<any> {
|
|||
// end of body
|
||||
close();
|
||||
}
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then((u: Function) => (unlisten = u));
|
||||
|
||||
const headers: Record<string, string> = {
|
||||
|
@ -83,8 +86,8 @@ export function fetch(url: string, options?: RequestInit): Promise<any> {
|
|||
: [],
|
||||
})
|
||||
.then((res: StreamResponse) => {
|
||||
request_id = res.request_id;
|
||||
const { status, status_text: statusText, headers } = res;
|
||||
const { request_id, status, status_text: statusText, headers } = res;
|
||||
setRequestId?.(request_id);
|
||||
const response = new Response(ts.readable, {
|
||||
status,
|
||||
statusText,
|
||||
|
|
Loading…
Reference in New Issue