瀏覽代碼

更改阻塞线程的方式

Kevin 6 年之前
父節點
當前提交
9ce07241a2
共有 5 個文件被更改,包括 24 次插入18 次删除
  1. 二進制
      dll/GetEasy.Node.Printer.64.dll
  2. 二進制
      dll/GetEasy.Node.Printer.86.dll
  3. 二進制
      dll/GetEasy.Node.Printer.dll
  4. 23 17
      index.js
  5. 1 1
      package.json

二進制
dll/GetEasy.Node.Printer.64.dll


二進制
dll/GetEasy.Node.Printer.86.dll


二進制
dll/GetEasy.Node.Printer.dll


+ 23 - 17
index.js

@@ -20,9 +20,10 @@ if (!fs.existsSync(dllPath)) {
 }
 var callbackPointer;
 var dll = ffi.Library(dllPath, {
-    designerReport: ['void', ['string', 'string', 'pointer']],
+    designerReport: ['void', ['string', 'string']],
     reportShowPreview: ['void', ['string', 'string']],
-    reportPrinter: ['void', ['string', 'string']]
+    reportPrinter: ['void', ['string', 'string']],
+    waitSaveOrClose: ['void', ['pointer']]
 });
 var ReportApi = /** @class */ (function () {
     function ReportApi() {
@@ -36,23 +37,28 @@ var ReportApi = /** @class */ (function () {
      */
     ReportApi.designerReport = function (template, tempData, saveCallback) {
         callbackPointer = ffi.Callback('void', ['string', 'pointer'], function (data, func) {
-            var nativeCallback = ffi.ForeignFunction(func, 'void', ['bool']);
-            try {
-                saveCallback(data, function (result) {
-                    if (result) {
-                        nativeCallback(true);
-                    }
-                    else {
-                        nativeCallback(false);
-                    }
-                });
-            }
-            catch (e) {
-                console.error(e);
-                nativeCallback(false);
+            if (data) {
+                var nativeCallback_1 = ffi.ForeignFunction(func, 'void', ['bool']);
+                try {
+                    saveCallback(data, function (result) {
+                        if (result) {
+                            nativeCallback_1(true);
+                        }
+                        else {
+                            nativeCallback_1(false);
+                        }
+                        dll.waitSaveOrClose(callbackPointer);
+                    });
+                }
+                catch (e) {
+                    console.error(e);
+                    nativeCallback_1(false);
+                    dll.waitSaveOrClose(callbackPointer);
+                }
             }
         });
-        dll.designerReport(template, tempData, callbackPointer);
+        dll.designerReport(template, tempData);
+        dll.waitSaveOrClose(callbackPointer);
     };
     /**
      *打印预览

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "geteasy.node.printer",
-  "version": "1.0.8",
+  "version": "1.0.9",
   "description": "",
   "main": "index.js",
   "scripts": {