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