Browse Source

fix getOnnxTextSession

Abhinav 1 năm trước cách đây
mục cha
commit
d1fa900d4b
1 tập tin đã thay đổi với 13 bổ sung6 xóa
  1. 13 6
      src/services/clipService.ts

+ 13 - 6
src/services/clipService.ts

@@ -193,15 +193,22 @@ async function getOnnxImageSession() {
 }
 
 let onnxTextSessionPromise: Promise<any> = null;
+let onnxTextSession: any = null;
 
 async function getOnnxTextSession() {
-    if (!onnxTextSessionPromise) {
-        onnxTextSessionPromise = (async () => {
-            const clipModelPath = await getClipTextModelPath('onnx');
-            onnxTextSessionPromise = createOnnxSession(clipModelPath);
-        })();
+    if (onnxTextSession) {
+        return onnxTextSession;
+    }
+    if (onnxTextSessionPromise) {
+        throw Error(CustomErrors.MODEL_DOWNLOAD_PENDING);
     }
-    return onnxTextSessionPromise;
+    onnxTextSessionPromise = (async () => {
+        const clipModelPath = await getClipTextModelPath('onnx');
+        return createOnnxSession(clipModelPath);
+    })();
+    onnxTextSession = await onnxTextSessionPromise;
+    onnxTextSessionPromise = null;
+    return onnxTextSession;
 }
 
 let tokenizer: Tokenizer = null;