美文网首页
运行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