美文网首页
运行promise-yiled生成器的工具

运行promise-yiled生成器的工具

作者: 没有太晚没有不可能 | 来源:发表于2018-12-04 19:40 被阅读0次

    #code

    /**

    *

    * @param 生成器函数 gen

    */

    function run(gen) {

        var args = [].slice.call(arguments, 1), it;

        it = gen.apply(this, args);

        return Promise.resolve()

        .then(function handleNext(value) {

            var next = it.next(value);

            return (function handleRes(next) {

                if (next.done) {

                    return next.value;

                }

                else {

                    return Promise.resolve(next.value).then(

                        handleNext,

                        function handleErr(err){

                            return Promise.resolve(it.throw(err)).then(handleRes);

                    })

                }

            })(next)

        })

    }

    相关文章

      网友评论

          本文标题:运行promise-yiled生成器的工具

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