2014-09-23 2 views
2

Я следующий код:Javascript минификация Проблемы

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 Может кто-нибудь сказать мне, почему это происходит? Для меня это не имеет смысла.

ответ

9

Вы: :b.promise(). Минификатор использует comma operator, который возвращает свой последний операнд:

return 1, 2; // returns 2 
return 1, 2, 3; // returns 3 
+0

Вау, не знал об этом. Спасибо. (Я буду отмечать как правильный ответ, если разрешено stackoverflow) – Lothre1

Смежные вопросы