https://github.com/channg/zcoil
总说开源是被动的,躺着就行。但感觉不推广推广连看的人都没有,悲催。周围同事也都忙着搞业务,感觉就我一个人在搞,下班自己敲代码,越搞越觉得没劲,气氛不行。
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,^_^ 文档中打错了 |
2
channg OP @royzxq 可能是我工作场景中使用 vuex 遇到了太多坑点了,本来想写一个用来替换 vuex 结果写着写着就变成一个框架了。
|
3
LeungJZ 2018-07-14 01:14:32 +08:00
emmmmmm,表示没看懂干嘛用的。。。
|
4
SilentDepth 2018-07-14 01:15:14 +08:00
开发这个框架为了解决什么痛点?
|
6
channg OP @SilentDepth 最大的用处就是解决了异步请求的依赖,当异步数据出现依赖关系的时候,可以用消息队列的模型 去执行异步请求,比如说一个,需要使用用户信息,直接把用户信息塞到消息队列,然后再塞这个方法,就能顺序执行。当然这也是一个 model 层框架,有一些集中数据托管等一些功能啦,监听数据变化的方法啦。
|
7
yfgeek 2018-07-14 01:54:21 +08:00
鼓励一下,看懂了需求,star 一下
|
8
MASAILA 2018-07-14 02:22:29 +08:00
前端真是花样多。。
|
9
fulvaz 2018-07-14 09:00:13 +08:00
解决了啥? 适用场景? 为什么要用?
没动力怎么参与嘛~ |
10
azh7138m 2018-07-14 09:14:53 +08:00 via Android
https://cerebraljs.com
我还是觉得声明式的看着舒服 |
12
zachlhb 2018-07-14 10:37:05 +08:00 1
为啥要别人认可,有想法就去做,总比那些只会说不会做的人强多了
|
14
sagaxu 2018-07-14 13:14:53 +08:00 via Android
|
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); |
19
channg OP @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 转化而来,两者之间不能互相转换。 所以你可以将 延迟时间加长 可以发现两者是同时输出的。 所以对于业务而言,这个是没用作用的 |
20
channg OP @sagaxu 确实一个 promise 可以永远被调用 then 但是处理第一次执行之外,但除了第一次之外,其他的过程只是一个取值过程,我不知道你认为的业务场景对于这样是否有用?
|
21
sagaxu 2018-07-14 22:25:38 +08:00
@channg 需要多次求值的,数据字典里保存能返回 promise 的方法,每次调用返回的都是新的 promise。本质是提供一个服务注册与发现的字典。只要业务需要,闭包和 promise 结合使用,能覆盖绝大部分场景了。
|