Понимание продолжений в JavaScript

Я пытаюсь решить последнее упражнение из этого Учебного пособия по закрытию JavaScript , в котором рассматривается передача продолжения.

Это упражнение:

Определите функцию с именем bothC, аналогичную seqC, которая принимает функции fC и gC, а также успешные и неудачные продолжения. Обе функции fC и gC принимают успешное и неудачное продолжение. Ваша функция bothC должна вызывать как fC, так и gC, несмотря ни на что, но вызывать только успех, если оба успешно завершились, и неудачу в противном случае. Не забывайте, ваша функция никогда не вернется!

Кажется, это правильный ответ:

var bothC = function (fC, gC, success, failure) {
    fC(
      function() {
        gC(success, failure);  
      },
      function() {
        gC(failure, failure);    
      }
    );
};

Но почему я не могу просто сделать это?

var bothC = function(fC, gC, success, failure) {
  fC(gC(success, failure), gC(failure, failure));
}

7
задан Bill the Lizard 20 September 2012 в 21:02
поделиться