前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Generator函数自动执行器

Generator函数自动执行器

作者头像
阿超
发布2022-08-21 12:43:37
4540
发布2022-08-21 12:43:37
举报
文章被收录于专栏:快乐阿超快乐阿超

今天用typescript写了个Generator函数自动执行器:

代码语言:javascript
复制
export function runGenAuto(fn: Function) {
    let gen: Generator<Function> = fn()
    function next() {
        let result = gen.next()
        if (result.done) {
            return result.value
        }
        return result.value(next)
    }
    return next();
}

为了测试效果,我们定义一个Generator函数,这个函数用于将URLSearchParams转换成一般对象

当然直接遍历不用generator也能实现上述需求,但这里主要是为了测上方的自动执行Generator函数的效果

代码语言:javascript
复制
interface Param {
    [key: string]: any
}
export function* transferToObj(params: URLSearchParams) {
    let result: Param = {};
    for (let [key, value] of params.entries()) {
        yield (next: Function) => next(result[key] = value)
    }
    return result
}

使用时传入对应的Thunk函数即可

代码语言:javascript
复制
let params = runGenAuto(() => transferToObj(new URLSearchParams("q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4")))
console.log(params)

打印结果:

img
img
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档