huqi 5 лет назад
Родитель
Сommit
38708ffa45

+ 45 - 20
o2web/source/o2_core/o2.js

@@ -225,20 +225,30 @@ if (!window.Promise){
                 cb = (callback[name]) ? callback[name] : ((callback[key]) ? callback[key] : null);
             }
         }
-        if (cb){
-            if (promise_cb){
-                var r = cb.apply(b, par);
+        if (cb) return cb.apply(b, par);
+        //return null;
+
+        // if (cb){
+        //     if (promise_cb){
+        //         var r = cb.apply(b, par);
+        //
+        //         window.setTimeout(function(){
+        //             promise_cb(r);
+        //         },0)
+        //         //return promise_cb(r);
+        //     }else{
+        //         return cb.apply(b, par);
+        //     }
+        //     //return (promise_cb) ? promise_cb(cb.apply(b, par)) : cb.apply(b, par) ;
+        // }
+        // if (promise_cb){
+        //     window.setTimeout(function(){
+        //         promise_cb.apply(b, par);
+        //     },0)
+        //
+        //     //return promise_cb.apply(b, par);
+        // }
 
-                return promise_cb(r);
-            }else{
-                return cb.apply(b, par);
-            }
-            //return (promise_cb) ? promise_cb(cb.apply(b, par)) : cb.apply(b, par) ;
-        }
-        if (promise_cb){
-            return promise_cb.apply(b, par);
-        }
-        return null;
         //return (promise_cb) ? promise_cb.apply(b, par) : null;
 
         // if (key.toLowerCase()==="success" && (type==="function" || type==="o2_async_function")){
@@ -1457,15 +1467,16 @@ if (!window.Promise){
                                 layout.session.token = xToken;
                             }
                         }
-                        //resolve();
-                        return o2.runCallback(callback, "success", [responseJSON],null, resolve);
+                        resolve(responseJSON);
+                        //return o2.runCallback(callback, "success", [responseJSON],null, resolve);
                     },
                     onFailure: function(xhr){
-                        //reject();
-                        return o2.runCallback(callback, "requestFailure", [xhr], null, reject);
+                        reject(xhr);
+                        //return o2.runCallback(callback, "requestFailure", [xhr], null, reject);
                     }.bind(this),
                     onError: function(text, error){
-                        return o2.runCallback(callback, "error", [text, error], null, reject);
+                        reject(null, text, error);
+                        //return o2.runCallback(callback, "error", [text, error], null, reject);
                     }.bind(this)
                 });
 
@@ -1486,6 +1497,12 @@ if (!window.Promise){
                 res.send(data);
             }.bind(this));
 
+            p = p.then(function(responseJSON){
+                return o2.runCallback(callback, "success", [responseJSON],null);
+            }, function(xhr, text, error){
+                return o2.runCallback(callback, "failure", [xhr, text, error], null);
+            });
+
             //var oReturn = (callback.success && callback.success.isAG) ? callback.success : callback;
             var oReturn = p;
             oReturn.res = res;
@@ -1513,15 +1530,23 @@ if (!window.Promise){
                                 layout.session.token = xToken;
                             }
                         }
-                        o2.runCallback(callback, "success", [result.data], null, s);
+                        s(result.data);
+                        //o2.runCallback(callback, "success", [result.data], null, s);
                     }else{
-                        o2.runCallback(callback, "failure", [result.data], null, f);
+                        f(result.data);
+                        //o2.runCallback(callback, "failure", [result.data], null, f);
                     }
                     actionWorker.terminate();
                 }
                 actionWorker.postMessage(workerMessage);
             }.bind(this));
 
+            p = p.then(function(data){
+                return o2.runCallback(callback, "success", [data],null);
+            }, function(data){
+                return o2.runCallback(callback, "failure", [data], null);
+            });
+
             //var oReturn = (callback.success && callback.success.addResolve) ? callback.success : callback;
             var oReturn = p;
             oReturn.actionWorker = actionWorker;

+ 12 - 2
o2web/source/o2_core/o2/xAction/RestActions.js

@@ -198,14 +198,24 @@ MWF.xAction.RestActions = MWF.Actions = {
                     }
                     cb();
                 });
-
+                //actionArgs.unshift(null);
                 actionArgs.unshift(function(json){
                     jsons[i] = json;
                     res.push(true);
                     cb();
                 });
 
-                action.action[action.name].apply(action.action, actionArgs);
+                var p = action.action[action.name].apply(action.action, actionArgs);
+                // p.catch(function(xhr, text, error){
+                //     res.push(false);
+                //     if (!cbf){
+                //         _doError(xhr, text, error);
+                //     }else{
+                //         cbf();
+                //     }
+                //     cb();
+                // })
+
             }else{
                 action.action[action.name](function(){
                     jsons[i] = json;

+ 3 - 3
o2web/source/o2_core/o2/xDesktop/Actions/RestActions.js

@@ -620,8 +620,8 @@ MWF.xDesktop.Actions.RestActions.Callback = new Class({
 	onRequestFailure: function(xhr){
 		return this.doError(xhr, "", "");
 	},
-	onFailure: function(xhr){
-        return this.doError(xhr, "", "");
+	onFailure: function(xhr, text, error){
+        return this.doError(xhr, text, error);
 	},
 	onError: function(text, error){
         return this.doError(null, text, error);
@@ -653,6 +653,6 @@ MWF.xDesktop.Actions.RestActions.Callback = new Class({
             }
 		//	throw "request error: "+errorText;
 		}
-		return xhr;
+		return Promise.reject(xhr);
 	}
 });

+ 6 - 6
o2web/source/x_component_process_Work/Main.js

@@ -200,9 +200,9 @@ MWF.xApplication.process.Work.Main = new Class({
                     loadFormFlag = true;
                     check();
                 }.bind(this), "failure": function(){
-                    layout.sessionPromise.then(function(){
-                        this.close();
-                    }.bind(this), function(){});
+                    // layout.sessionPromise.then(function(){
+                    //     this.close();
+                    // }.bind(this), function(){});
                     //this.close();
                 }.bind(this)}, id, id, id, [this.options.formid || this.options.form.id]);
         }else{
@@ -249,9 +249,9 @@ MWF.xApplication.process.Work.Main = new Class({
                         loadWorkFlag = true;
                         check();
                     }.bind(this), "failure": function(){
-                        layout.sessionPromise.then(function(){
-                            this.close();
-                        }.bind(this), function(){});
+                        // layout.sessionPromise.then(function(){
+                        //     this.close();
+                        // }.bind(this), function(){});
                         //this.close();
                     }.bind(this)}, id
             );