我有以下代码:
getTrainPlanDetail: function(id){
var df = new $.Deferred();
$.post( config.api, addJSONHeaders("detail_fiche_entrainement",{"idRequete": id}), function(data){
if (ajaxEval(data)){
df.resolve(data);
} else {
df.fail(data);
}
}, 'json').fail(function(jqXHR, textStatus, errorThrown){
df.fail();
});
return df.promise();
},
缩小后,它会转换为:
getTrainPlanDetail: function(a) {
var b = new $.Deferred;
return $.post(config.api, addJSONHeaders("detail_fiche_entrainement", {idRequete: a}), function(a) {
ajaxEval(a) ? b.resolve(a) : b.fail(a)
}, "json").fail(function() {
b.fail()
}), b.promise()
}
您注意到返回问题了吗? 我想返回 b.promise();不是 $.post 有人能告诉我为什么会发生这种情况吗?对我来说这没有意义。
最佳答案
您正在返回b.promise()
。缩小器正在利用 comma operator返回最后一个操作数:
return 1, 2; // returns 2
return 1, 2, 3; // returns 3
关于Javascript 缩小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25989892/