JavaScript中的基本流控制

Jos*_*ton 5 javascript

请您解释一下,如何在JavaScript中编写真正基本的流控制?谢谢.

flow([

  function(callback) { /* do something */ callback(); /* run next function */ },
  function(callback) { /* do something */ callback(); /* run next function */ },
  function(callback) { /* do something */ callback(); /* run next function */ },
  function(callback) { /* do something */ callback();  }

], function() {

  alert("Done.");

});
Run Code Online (Sandbox Code Playgroud)

Ano*_*on. 7

会这样的吗?

function flow(fns, last) {
    var f = last;
    for (var i = fns.length - 1; i >= 0; i--)
        f = makefunc(fns[i], f);
    f();
}

function makefunc(f, g) {
    return function() { f(g) }
}
Run Code Online (Sandbox Code Playgroud)


qwe*_*ymk 0

(function(){
    function a(cb) { alert('hi'); cb(); }
    function b(cb) { alert('there'); cb(); }
    function c(cb) { alert('replace alert with console.log for ease'); cb(); }
    var done = function() { alert('done'); }
    a(b(c(done)));
})()
Run Code Online (Sandbox Code Playgroud)