提交 ef158fe8 编写于 作者: NoSubject's avatar NoSubject

Merge branch 'fix/Paused_on_promise_rejection' into 'wrdp'

修复Promise rejection错误

See merge request o2oa/o2oa!2882
......@@ -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;
......
......@@ -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;
......
......@@ -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);
}
});
......@@ -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
);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册