I am having an issue with $.ajax, $.when and apply. I have a constructor:
The ajax request is not triggered when it should be :
http://plnkr.co/edit/Ul9d8tB7BHoZyHzzQQyB?p=preview
(see the console)
function updateGeneralTerm() {
  return {
    id: "GeneralCondition",
    ajax: function () {
      return $.ajax({
        type: 'POST',
        url: "@Url.Action("UpdateGeneralTerms", "Agreements")",
        data: $("#GeneralConditions").serialize()
      })
    }
  }
}
//I inject it in my custom function        
function CustomFunction(arr) {
  let arrOfAjax = arr.map(function (obj) {
    return obj.ajax
  });
  $.when.apply(null, arrOfAjax);
}
CustomFunction([new updateGeneralTerm()];
In my CustomFunction, I am checking other stuff, as does the form has changed... etc. However it doesn't seem to be relevant for my issue. Nothing happens.
In the future I might have n specific term that I'd like to update only if forms has changed.
My issue: ajax are not requested by $.when(). If I am changing to  return obj.ajax(), the ajax request is triggered there directly not by the $.when().
I 'd like the $.when() to handle all ajax requests.
 
     
    