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

2018-07-14 00:16:35 +08:00
 channg

https://github.com/channg/zcoil

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

3821 次点击
所在节点    程序员
23 条回复
royzxq
2018-07-14 00:43:07 +08:00
emmm 看不懂这可以解决什么实际问题, 跪大佬先。

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

没动力怎么参与嘛~
azh7138m
2018-07-14 09:14:53 +08:00
https://cerebraljs.com
我还是觉得声明式的看着舒服
sagaxu
2018-07-14 10:27:20 +08:00
@channg await 不行吗?搞消息队列多麻烦
zachlhb
2018-07-14 10:37:05 +08:00
为啥要别人认可,有想法就去做,总比那些只会说不会做的人强多了
channg
2018-07-14 11:47:20 +08:00
@sagaxu 消息队列的作用,最大的就是减少对其他方法的依赖,async/await 却是加大了方法之间的依赖。
sagaxu
2018-07-14 13:14:53 +08:00
@channg 可不可以这样子,注册一个数据仓库,
{
data1: Promise1,
data2: Promise2,
...
}
方法的依赖就变成数据仓库里某一项的依赖
channg
2018-07-14 15:26:39 +08:00
@sagaxu 可以,但是 Promise 状态 无法逆向改变,用一次就不能用了
sagaxu
2018-07-14 16:27:08 +08:00
@channg 同一个 promise 不能被多次 await 吗?
channg
2018-07-14 17:21:12 +08:00
@sagaxu 肯定不可以啊
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
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
2018-07-14 21:38:50 +08:00
@sagaxu 确实一个 promise 可以永远被调用 then 但是处理第一次执行之外,但除了第一次之外,其他的过程只是一个取值过程,我不知道你认为的业务场景对于这样是否有用?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/470766

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX