Kaynağa Gözat

前后共用的文件不用async函数,防止打包时babel自动注入require部分函数,造成前端报错

vian 5 yıl önce
ebeveyn
işleme
4c620e6a00
2 değiştirilmiş dosya ile 10 ekleme ve 4 silme
  1. 9 3
      public/common_util.js
  2. 1 1
      public/web/common_ajax.js

+ 9 - 3
public/common_util.js

@@ -84,13 +84,19 @@ function deleteEmptyObject(arr) {
             return sorted;
         }
     }
-        /**
+    /**
      * 根据编码方式获取编码数据
      * @param {Set} source - 字符串集合数据源
      * @param {String} encoding - 编码方式
      */
-    async function getEncodedData(source, encoding, toBase64 = false) {
-        return await ajaxPost('/project/getEncodedData', { source, encoding, toBase64 });
+    // async 函数打包后会在前端注入var _regenerator = require("babel-runtime/regenerator"),导致报错
+    // 因此用Promise包装
+    function getEncodedData(source, encoding, toBase64 = false) {
+        return new Promise((resolve, reject) => {
+            ajaxPost('/project/getEncodedData', { source, encoding, toBase64 })
+                .then(resolve)
+                .catch(reject);
+        });
     }
 
     return {

+ 1 - 1
public/web/common_ajax.js

@@ -163,7 +163,7 @@ $.ajaxSetup({
 
 
 
-async function ajaxPost(url, data, isPlainData = false, timeout = 200000) {
+function ajaxPost(url, data, isPlainData = false, timeout = 200000) {
     return new Promise(function (resolve, reject) {
         $.ajax({
             type:"POST",