美文网首页
Thunk 函数的小例子

Thunk 函数的小例子

作者: smallBear | 来源:发表于2017-04-18 21:16 被阅读0次

    var thunk = function () {
    return x + 5;
    };

    function f(thunk){
    return thunk() * 2;
    }
    编译器的"传名调用"实现,往往是将参数放到一个临时函数之中,再将这个临时函数传入函数体。这个临时函数就叫做 Thunk 函数。

    function run(fn) {
    var gen = fn();

    function next(err, data) {
    var result = gen.next(data);
    if (result.done) return;
    result.value(next);
    }

    next();
    }

    run(gen);

    上面代码的 run 函数,就是一个 Generator 函数的自动执行器。内部的 next 函数就是 Thunk 的回调函数。 next 函数先将指针移到 Generator 函数的下一步(gen.next 方法),然后判断 Generator 函数是否结束(result.done 属性),如果没结束,就将 next 函数再传入 Thunk 函数(result.value 属性),否则就直接退出

    相关文章

      网友评论

          本文标题:Thunk 函数的小例子

          本文链接:https://www.haomeiwen.com/subject/bfvqzttx.html