V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
channg
V2EX  ›  程序员

花费很多时间写了一个前端框架,但是感觉没人认可,有没有大佬帮忙看看,提提意见

  •  
  •   channg · 2018-07-14 00:16:35 +08:00 · 3675 次点击
    这是一个创建于 2111 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/channg/zcoil

    总说开源是被动的,躺着就行。但感觉不推广推广连看的人都没有,悲催。周围同事也都忙着搞业务,感觉就我一个人在搞,下班自己敲代码,越搞越觉得没劲,气氛不行。

    23 条回复    2018-07-14 23:32:47 +08:00
    royzxq
        1
    royzxq  
       2018-07-14 00:43:07 +08:00   ❤️ 1
    emmm 看不懂这可以解决什么实际问题, 跪大佬先。

    https://channg.github.io/zcoil/#/THIRD?id=coil 顺便这里的 z.message 应该是 hello worle channg,^_^
    文档中打错了
    channg
        2
    channg  
    OP
       2018-07-14 00:57:12 +08:00
    @royzxq 可能是我工作场景中使用 vuex 遇到了太多坑点了,本来想写一个用来替换 vuex 结果写着写着就变成一个框架了。
    LeungJZ
        3
    LeungJZ  
       2018-07-14 01:14:32 +08:00
    emmmmmm,表示没看懂干嘛用的。。。
    SilentDepth
        4
    SilentDepth  
       2018-07-14 01:15:14 +08:00
    开发这个框架为了解决什么痛点?
    channg
        5
    channg  
    OP
       2018-07-14 01:17:29 +08:00
    @LeungJZ 谢啦 ,我应该在 文档最开始就写上为什么要使用这个
    channg
        6
    channg  
    OP
       2018-07-14 01:22:03 +08:00
    @SilentDepth 最大的用处就是解决了异步请求的依赖,当异步数据出现依赖关系的时候,可以用消息队列的模型 去执行异步请求,比如说一个,需要使用用户信息,直接把用户信息塞到消息队列,然后再塞这个方法,就能顺序执行。当然这也是一个 model 层框架,有一些集中数据托管等一些功能啦,监听数据变化的方法啦。
    yfgeek
        7
    yfgeek  
       2018-07-14 01:54:21 +08:00
    鼓励一下,看懂了需求,star 一下
    MASAILA
        8
    MASAILA  
       2018-07-14 02:22:29 +08:00
    前端真是花样多。。
    fulvaz
        9
    fulvaz  
       2018-07-14 09:00:13 +08:00
    解决了啥? 适用场景? 为什么要用?

    没动力怎么参与嘛~
    azh7138m
        10
    azh7138m  
       2018-07-14 09:14:53 +08:00 via Android
    https://cerebraljs.com
    我还是觉得声明式的看着舒服
    sagaxu
        11
    sagaxu  
       2018-07-14 10:27:20 +08:00 via Android
    @channg await 不行吗?搞消息队列多麻烦
    zachlhb
        12
    zachlhb  
       2018-07-14 10:37:05 +08:00   ❤️ 1
    为啥要别人认可,有想法就去做,总比那些只会说不会做的人强多了
    channg
        13
    channg  
    OP
       2018-07-14 11:47:20 +08:00
    @sagaxu 消息队列的作用,最大的就是减少对其他方法的依赖,async/await 却是加大了方法之间的依赖。
    sagaxu
        14
    sagaxu  
       2018-07-14 13:14:53 +08:00 via Android
    @channg 可不可以这样子,注册一个数据仓库,
    {
    data1: Promise1,
    data2: Promise2,
    ...
    }
    方法的依赖就变成数据仓库里某一项的依赖
    channg
        15
    channg  
    OP
       2018-07-14 15:26:39 +08:00
    @sagaxu 可以,但是 Promise 状态 无法逆向改变,用一次就不能用了
    sagaxu
        16
    sagaxu  
       2018-07-14 16:27:08 +08:00 via Android
    @channg 同一个 promise 不能被多次 await 吗?
    channg
        17
    channg  
    OP
       2018-07-14 17:21:12 +08:00
    @sagaxu 肯定不可以啊
    sagaxu
        18
    sagaxu  
       2018-07-14 19:55:32 +08:00
    @channg var promise1 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 100, 'foo');
    });

    async function foo() {
    const v1 = await promise1;
    const v2 = await promise1;

    console.log(v1);
    console.log(v2);
    }

    setTimeout(foo, 2000);
    channg
        19
    channg  
    OP
       2018-07-14 21:35:43 +08:00
    @sagaxu

    好的 就你这段代码而言,可以这样
    ```
    var promise1 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 100, 'foo');
    console.log('invoke')
    });

    async function foo() {
    const v1 = await promise1;
    const v2 = await promise1;

    console.log(v1);
    console.log(v2);
    }

    setTimeout(foo, 2000);
    ```

    可以发现,invoke 之后被输出一次,也就是说后面 await 对于取得值将永远跟前一个一致,因为根据 promise a+ Promise States 中明确规定了,pending 可以转化为 fulfilled 或 rejected 并且只能转化一次,也就是说如果 pending 转化到 fulfilled 状态,那么就不能再转化到 rejected。并且 fulfilled 和 rejected 状态只能由 pending 转化而来,两者之间不能互相转换。

    所以你可以将 延迟时间加长 可以发现两者是同时输出的。

    所以对于业务而言,这个是没用作用的
    channg
        20
    channg  
    OP
       2018-07-14 21:38:50 +08:00
    @sagaxu 确实一个 promise 可以永远被调用 then 但是处理第一次执行之外,但除了第一次之外,其他的过程只是一个取值过程,我不知道你认为的业务场景对于这样是否有用?
    sagaxu
        21
    sagaxu  
       2018-07-14 22:25:38 +08:00
    @channg 需要多次求值的,数据字典里保存能返回 promise 的方法,每次调用返回的都是新的 promise。本质是提供一个服务注册与发现的字典。只要业务需要,闭包和 promise 结合使用,能覆盖绝大部分场景了。
    channg
        22
    channg  
    OP
       2018-07-14 23:05:28 +08:00
    @sagaxu 所以又要依赖方法了,其实 promise 也好 async/await 也罢 都只是一种语法而已,与业务场景无关,选择自己需要的就可以了。
    sagaxu
        23
    sagaxu  
       2018-07-14 23:32:47 +08:00
    @channg 数据之间的依赖关系,不会因为引入某个方法就消失。依赖某个方法,或者调用链路中相邻结点之间的依赖,都是依赖关系的体现。解决相同的问题,同步的方式写代码,体验可能更好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1056 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 19:33 · PVG 03:33 · LAX 12:33 · JFK 15:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.