So far we have been chaining together synchronous functions that return their final value quickly enough for it not to be a problem. The only asynchronous function involved in the chain has been the ...
var a, async = function(f) { setTimeout(function() { var r = 'step 2'; f(r); }, 1); }, myFunc = function() { a = 'step 1'; async(function(r) { a = r; // should reset ...