Я пытаюсь решить последнее упражнение из этого Учебного пособия по закрытию 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));
}