3.6 Composing Continuations
https://github.com/eu81273/jsfiddle-console
by dimitrs_papadimitriou
HTML
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
JavaScript
var square = (x) => {
return resolve => {
setTimeout(() => {
resolve(x * x)
}, 1000);
}
};
square(2)(r => {
square(r)(r1 => {
console.log(r1)
});
});
var bind = (cont1) => (cont2) => {
return x => resolve => {
cont1(x)(r1 => cont2(r1)(r2 => resolve(r2)))
}
}
bind(square)(bind(square)(square)(3))(console.log)